Ich habe das folgende Problem: Wenn ich meine Automatisierungstests durchführe, erhalte ich in Chrome die folgende Warnung: "Deaktiviere Developer Mode Extension".
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
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);
Ich kann Erweiterungen nicht deaktivieren, da ich eine entwickle und teste.
Was ich tue, um dieses Popup zu schließen, ist folgendes:
SendKeys(Control-N)
-Methode). Dadurch wird das Fenster "Entwicklermoduserweiterungen deaktivieren" nach 3 Sekunden im neuen Fenster vorhersagbar angezeigt. 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.
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!
aufgelöst in chrom 54 und chromdriver 2.25
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();
Versuchen Sie, setProperty über der ChromeDriver-Instanz hinzuzufügen
System.setProperty("webdriver.chrome.driver","C:/[PATH]/chromedriver.exe");
driver = new ChromeDriver(capabilities);
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.
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.
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);