web-dev-qa-db-fra.com

ChromeDriver - Désactiver les extensions en mode développeur dans l'automatisation de Selenium WebDriver

J'ai le problème suivant: Lorsque j'effectue mes tests d'automatisation, l'alerte suivante "Désactiver l'extension du mode développeur" s'affiche dans Chrome.

enter image description here

Y at-il un moyen de supprimer/désactiver cela?. C'est un bloqueur pour moi car cela me fait échouer à certains tests.

Merci d'avance

33
elcharrua

Avez-vous essayé de désactiver les extensions développeur avec un paramètre de ligne de commande?

Essayez avec le code Java Selenium WebDriver suivant:

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

Je ne peux pas désactiver les extensions car j'en développe et en teste une.

Ce que je fais pour rejeter ce popup est le suivant:

  1. Je charge le chrome avec mon extension à l'aide de Selenium.
  2. Je crée alors immédiatement une nouvelle fenêtre (via la méthode SendKeys(Control-N)). De manière prévisible, la fenêtre contextuelle "Désactiver les extensions du mode développeur" s'affiche après 3 secondes dans la nouvelle fenêtre.
  3. Je ne peux pas dire par programme quand cela apparaît (cela ne s'affiche pas dans les captures d'écran), alors j'attends simplement 4 secondes.
  4. Puis je ferme l'onglet via driver.Close(); (qui ferme également cette nouvelle fenêtre). Chrome prend cela comme "annuler", en supprimant la fenêtre contextuelle, en laissant la fenêtre et l'onglet d'origine.

Je trouve cela nécessaire car la fenêtre contextuelle interfère avec les interactions normales du navigateur Selenium, comme SendKeys, que j'utilise pour changer d'onglet et de fenêtre.

8
Erik Eidt

Ce problème a été résolu automatiquement avec une combinaison de ChromeDriver.exe V2.23 + Chrome 53.0.

Pour comprendre quelle version de chrome fonctionnera avec quel pilote, nous pouvons utiliser la documentation détaillée suivante: https://sites.google.com/a/chromium.org/chromedriver/downloads

Profitez des tests automatisés !!

3
RArora

résolu en chrome 54 et chromedriver 2.25

2
CRISTIANO BARBOSA

J'ai résolu ce problème en utilisant AutoIT.

Tout d'abord, vous devrez créer le script.

closechromewarning.au3:

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

Le script doit être compilé en un .exe, puis placez le .exe dans le chemin afin qu'il puisse être exécuté.

Fonction qui ferme l'avertissement en utilisant la syntaxe c #:

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

Sleep(4000) a fonctionné, mais je l'ai augmenté à Sleep(5000) juste pour en être sûr.

Appelez CloseChromeDialog():

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

Essayez d'ajouter setProperty au-dessus de l'instance ChromeDriver.

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

Moi aussi j'ai fait face à ce problème. La solution est que, si vous utilisez maven, ajoutez simplement:

-Dchrome.switches=--disable-extensions

Cela désactivera toutes les extensions et vous ne ferez pas face à ce problème. 

0
sateesh

A partir de Chromedriver v2.33, le moyen correct d'éviter ce message consiste à transmettre load-extension à l'argument excludeSwitches de l'objet chromeOptions . Le code Java suivant devrait faire l'affaire, même si je ne l'ai pas testé, car j'utilise Python:

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

Comme d'autres l'ont fait remarquer, le coupable est probablement l'extension Chrome Automation, chargée automatiquement par Chromedriver lors du lancement de Chrome.

Chromedriver v2.33 a introduit le nouveau commutateur pour empêcher le chargement des extensions:

Mises à jour de la capacité excludeSwitches qui permet maintenant d'exclure le commutateur --load-extension.

Je suppose que cette solution ne vous oblige pas à désactiver toutes les extensions. Vous devriez toujours pouvoir charger les autres manuellement.

0
Peter P

J'utilise Selenium Webdriver 2.53 et la version 56.0.2924.87 de Chrome, ainsi que le driver driver.exe que j'utilise est la version 2.27. avec cette combinaison, il travaille avec le 

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