JavaScript:在Selenium ChromeDriver中禁用图片

时间:2016-10-14 05:11:44

标签: javascript node.js selenium

因为Webdriver在进入下一行之前等待整个页面加载,所以我想禁用图像会在网络运行缓慢时加快速度。

这是Selenium Webdriver网站上的示例js文件:

var webdriver = require('selenium-webdriver'),
    By = webdriver.By,
    until = webdriver.until;

var driver = new webdriver.Builder()
    .forBrowser('chrome')
    .build();

driver.get('http://www.google.com/ncr');
driver.findElement(By.name('q')).sendKeys('webdriver');
driver.findElement(By.name('btnG')).click();
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
driver.quit();

如何在代码中禁用图片?

我搜索谷歌这个问题,我只用Python获得这个解决方案:Disable images in Selenium Python

3 个答案:

答案 0 :(得分:1)

在较高的层面上,我看到了一些解决方案:

  • profile.managed_default_content_settings.images设置为2 (我找不到相应的chromedriver文档,但您可以google它。)
  • 设置代理。通过代理连接到您的页面,该代理在请求图像文件时返回空数据。
  • 使用浏览器插件加载浏览器,为您执行此操作。某些东西(有点像广告拦截的作品)可能已经可用。 (con:浏览器特定的解决方案)

答案 1 :(得分:0)

在这里,我为您提供了无法加载图片的代码。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_experimental_option( "prefs", {'profile.managed_default_content_settings.images': 2})
driver = webdriver.Chrome("chromedriver.exe",chrome_options=chrome_options)

答案 2 :(得分:0)

您可以将options对象传递给禁用图片的“WebdriverJS”Builder

{
    prefs: {
        profile: {
            managed_default_content_settings: {
                images: 2
            }
        }
    }
}

完整的例子是:

const chromeDesktop = {
    prefs: {
        profile: {
            managed_default_content_settings: {
                images: 2
            }
        }
    }
};
const { By, Builder, until } = require('selenium-webdriver');
const driver = new Builder().withCapabilities(chromeDesktop).build();

这绝对对我有用。