it-roy-ru.com

ChromeDriver - отключение всплывающих расширений режима разработчика при автоматизации Selenium WebDriver

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

enter image description here

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

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

33
elcharrua

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

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

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

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

Что я делаю, чтобы закрыть это всплывающее окно:

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

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

8
Erik Eidt

Это было автоматически исправлено с помощью комбинации ChromeDriver.exe V2.23 + Chrome 53.0.

Чтобы понять, какая версия Chrome будет работать с каким драйвером, мы можем использовать следующий подробный документ: https://sites.google.com/a/chromium.org/chromedriver/downloads

Наслаждайтесь автоматизированным тестированием!

3
RArora

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

2
CRISTIANO BARBOSA

Я работал над этой проблемой, используя AutoIT.

Сначала вам нужно будет создать скрипт.

closechromewarning.au3:

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

Сценарий должен быть скомпилирован в .exe, затем поместите .exe в путь, чтобы его можно было запустить.

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

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

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

Вызов CloseChromeDialog():

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

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

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

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

-Dchrome.switches=--disable-extensions

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

0
sateesh

Начиная с Chromedriver v2.33, правильным способом избежать этого сообщения является передача load-extension аргументу excludeSwitches объекта chromeOptions . Следующий код Java должен помочь, хотя я не проверял его, так как я использую Python:

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches", Collections.singletonList("load-extension"));

Как уже отмечали другие, виновником, вероятно, является Chrome Automation Extension, который автоматически загружается Chromedriver при запуске Chrome.

Chromedriver v2.33 введен новый переключатель для предотвращения загрузки расширений:

Обновляет возможность excludeSwitches, которая теперь позволяет исключить ключ --load-extension.

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

0
Peter P

Я использую Selenium Webdriver 2.53 и Chrome версии 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);
0
Sudhanva Patil