2016-10-14 3 views
0

Поскольку Webdriver ждет загрузки всей страницы, прежде чем перейти к следующей строке, я хочу отключить изображения, ускорит работу, когда сеть будет медленной.JavaScript: отключить изображения в Selenium ChromeDriver

Это пример файл в расслоении плотного сайте Selenium WebDriver в:

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(); 

Как отключить изображение в моем коде?

У меня есть поиск google для этого вопроса, я получаю это решение только в Python: Disable images in Selenium Python.

ответ

1

На высоком уровне, я вижу несколько решений:

  • набор profile.managed_default_content_settings.images к 2 (я не могу найти соответствующую документацию chromedriver, но вы можете Google это).
  • Настроить прокси. Подключитесь к своей странице через прокси-сервер, который возвращает пустые данные при запросе файла изображения.
  • Загрузите браузер с помощью плагина для браузера, который сделает это за вас. Возможно, что-то (немного похожее на блокировку рекламы). (con: конкретное решение для браузера)
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) 
+0

Я хочу код JavaScript. –

+0

Есть ли какие-либо особые причины для использования JavaScript? – Piyush

+0

Потому что мой настоящий проект использует JavaScript. Я не хочу менять свой код на JavaScript. Кстати, я не парень на Python. –

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(); 

Это, безусловно, работал для меня.

+0

Для тех, кто придет после июля 2017 года, я нашел, что это сработало в Chrome 61 с 'default_content_setting_values'. – Sean

Смежные вопросы