webentwicklung-frage-antwort-db.com.de

ChromeDriver - Deaktivieren Sie die Erweiterungen des Entwicklermodus bei der Selenium WebDriver-Automatisierung

Ich habe das folgende Problem: Wenn ich meine Automatisierungstests durchführe, erhalte ich in Chrome die folgende Warnung: "Deaktiviere Developer Mode Extension".

enter image description here

Gibt es eine Möglichkeit, dies zu entfernen/deaktivieren? Es ist ein Blocker für mich, da ich einige Tests nicht bestehen kann.

Danke im Voraus

33
elcharrua

Haben Sie versucht, die Entwicklererweiterungen mit der Befehlszeile param zu deaktivieren?

Versuchen Sie es mit dem folgenden Java-Code von Selenium WebDriver:

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

Ich kann Erweiterungen nicht deaktivieren, da ich eine entwickle und teste.

Was ich tue, um dieses Popup zu schließen, ist folgendes:

  1. Ich lade Chrome mit meiner Erweiterung mit Selenium.
  2. Ich erstelle dann sofort ein neues Fenster (über die SendKeys(Control-N)-Methode). Dadurch wird das Fenster "Entwicklermoduserweiterungen deaktivieren" nach 3 Sekunden im neuen Fenster vorhersagbar angezeigt.
  3. Ich kann nicht programmgesteuert sagen, wann es erscheint (wird nicht in Screenshots angezeigt), ich warte stattdessen einfach 4 Sekunden.
  4. Dann schließe ich die Registerkarte über driver.Close(); (was auch dieses neue Fenster schließt). Chrome nimmt dies als "Abbrechen" an, das Popup wird ausgeblendet und das ursprüngliche Fenster und die ursprüngliche Registerkarte bleiben erhalten.

Ich halte dies für notwendig, da das Popup die normale Interaktion des Selenium-Browsers stört, wie SendKeys, die ich zum Wechseln von Tabs und Fenstern verwende.

8
Erik Eidt

Dies wurde automatisch mit einer Kombination aus ChromeDriver.exe V2.23 + Chrome 53.0 behoben.

Um zu verstehen, welche Chrome-Version mit welchem ​​Treiber funktioniert, können wir das folgende ausführliche Dokument verwenden: https://sites.google.com/a/chromium.org/chromedriver/downloads

Viel Spaß beim automatisierten Testen!

3
RArora

aufgelöst in chrom 54 und chromdriver 2.25

2

Ich habe dieses Problem mit AutoIT gelöst.

Zuerst müssen Sie das Skript erstellen.

closechromewarning.au3:

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

Das Skript muss zu einem .exe kompiliert werden. Platzieren Sie dann den .exe im Pfad, damit es ausgeführt werden kann.

Funktion, die die Warnung mit der C # -Syntax schließt:

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

Sleep(4000) hat funktioniert, aber ich habe es auf Sleep(5000) gesetzt, nur um sicher zu gehen.

Aufruf von CloseChromeDialog():

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

Versuchen Sie, setProperty über der ChromeDriver-Instanz hinzuzufügen

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

Auch ich war mit diesem Problem konfrontiert. Die Lösung ist, wenn Sie Maven verwenden, fügen Sie einfach Folgendes hinzu:

-Dchrome.switches=--disable-extensions

Alle Erweiterungen werden deaktiviert, und Sie werden diesem Problem nicht begegnen. 

0
sateesh

Ab Chromedriver v2.33 besteht die richtige Möglichkeit, diese Nachricht zu vermeiden, indem Sie load-extension an das Argument excludeSwitches des Objekts chromeOptions übergeben. Der folgende Java-Code sollte den Trick ausführen, obwohl ich ihn nicht getestet habe, da ich Python verwende:

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

Wie andere darauf hingewiesen haben, ist der Schuldige wahrscheinlich die Chrome Automation Extension, die beim Start von Chrome automatisch von Chromedriver geladen wird.

Chromedriver v2.33 eingeführt der neue Schalter, um das Laden der Erweiterungen zu verhindern:

Aktualisierungen für die Funktion excludeSwitches, mit der jetzt der Schalter --load-extension ausgeschlossen werden kann.

Ich vermute, dass für diese Lösung nicht alle Erweiterungen deaktiviert werden müssen. Sie sollten noch andere manuell laden können.

0
Peter P

Ich verwende Selenium Webdriver 2.53 und Chrome-Version 56.0.2924.87 und die Chrome-Treiber.exe, die ich verwende, ist 2.27. mit dieser kombination arbeitet es mit der 

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