ChromeDriver - отключить расширения режима разработки для Selenium WebDriver

У меня возникла следующая проблема: Когда я запускаю тесты автоматизации, я продолжаю получать следующее предупреждение "Отключить расширение режима разработки" в Chrome.

enter image description here

Есть ли способ удалить/отключить это?. Это блокиратор для меня, поскольку он заставляет меня терпеть неудачу в некоторых тестах.

Заранее спасибо

Ответ 1

Вы пытались отключить расширения разработчика с параметром командной строки?

Попробуйте использовать следующий код Java Selenium WebDriver:

System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
driver = new ChromeDriver(options);

Ответ 2

Я не могу отключить расширения, потому что я разрабатываю и тестирую их.

То, что я делаю, чтобы отклонить это всплывающее окно, следующее:

  • Я загружаю хром с моим расширением, используя Selenium.
  • Затем я немедленно создаю новое окно (с помощью метода SendKeys(Control-N)). Это предсказуемо выводит всплывающее окно "Disable Developer Mode Extensions" через 3 секунды в новом окне.
  • Я не могу сказать программно, когда он всплывает (не отображается на снимках экрана), поэтому я просто жду 4 секунды.
  • Затем я закрываю вкладку с помощью driver.Close(); (которая также закрывает это новое окно). Chrome принимает это как "отменить", отклоняя всплывающее окно, оставляя исходное окно и вкладку.

Я считаю это необходимым, потому что всплывающее окно вмешивается в обычное взаимодействие браузера селена, например SendKeys, которое я использую для переключения вкладок и окон.

Ответ 3

Это автоматически фиксируется комбинацией ChromeDriver.exe V2.23 + Chrome 53.0

Ответ 4

Я работал над этой проблемой с помощью AutoIT.

Сначала вам нужно создать script.

closechromewarning.au3:

WinWaitActive("[CLASS:Chrome_WidgetWin_1]")
Send("{ESC}")

script необходимо скомпилировать в .exe, затем поместите .exe в путь, чтобы он мог быть запущен.

Функция, которая закрывает предупреждение, используя синтаксис С#:

public void CloseChromeDialog()
{
    System.Threading.Thread.Sleep(5000);
    Process.Start(@".\closechromewarning.exe");
}

Sleep(4000) работал, но я повысил его до Sleep(5000), чтобы быть уверенным.

Вызов CloseChromeDialog():

if(browser == chrome) //pseudo code
    CloseChromeDialog();

Ответ 5

разрешен в хроме 54 и хромоникере 2.25

Ответ 6

Я тоже столкнулся с этой проблемой. Решение состоит в том, что если вы используете maven, просто добавьте:

-Dchrome.switches=--disable-extensions

Он отключит все расширения, и вы не столкнетесь с этой проблемой.

Ответ 7

Я использую selenium Webdriver 2.53 и chrome version 56.0.2924.87, а chrome driver.exe, который я использую, равен 2.27. с этой комбинацией он работает с

System.setProperty("webdriver.chrome.driver", "./utilities/chromedriver.exe");          
ChromeOptions options = new ChromeOptions();        
options.addArguments("--disable-extensions");           
DesiredCapabilities caps = new DesiredCapabilities().chrome();
caps.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(caps);

Ответ 8

Попробуйте добавить setProperty над экземпляром ChromeDriver

System.setProperty("webdriver.chrome.driver","C:/[PATH]/chromedriver.exe");
driver = new ChromeDriver(capabilities);

Ответ 9

Я давно столкнулся с одной и той же проблемой. Решение оказалось очень простым. Просто скачайте обновленный "chromedriver.exe" и вставьте его в существующий, расположенный в папке "C:\Program Files\SeleniumBasic". Надеюсь, это сработает.

Ответ 10

Это связано с тем, что одно из ваших расширений работает в режиме разработчика. Пройдите через свой список расширений и отключите расширения один за другим, пока не найдете виновника (ов).