2014-05-21 11 views
31

Ich bin ein neuer Benutzer zu Protractor, und ich begegnete diesen Fehler meine Tests laufen mit Chrome (Fehleranzeigen unterhalb der Adressleiste im Browser gestartet):Winkelmesser Fehlermeldung "nicht unterstützte Befehlszeilenflagge" in Chrome?

You are using an unsupported command-line flag --ignore-certificate-errors. Stability and security will suffer.

Hier ist meine conf.js für Winkelmesser:

exports.config = { 

seleniumAddress: 'http://localhost:4444/wd/hub', 
capabilities: { 
    'browserName': 'chrome' 
}, 

... 

auch ich bin mit einem Mac mit dem neuesten verfügbaren Chromedriver und Selen Standalone-Server (2.41.0). Nun, ich habe diese Flagge nirgends gesetzt, und ich kann mich nicht erinnern, dass sie immer angezeigt wurde, daher bin ich mir nicht sicher, was dieses Problem verursacht hat.

Haben Sie Ideen, wie Sie dieses Problem lösen können?

+2

Ich habe gerade angefangen, dies auch heute zu bekommen. Ich frage mich, ob Chrome im Hintergrund aktualisiert wurde und in diesem Kontext nicht mehr korrekt funktioniert. Ich aktualisierte 'browserName': 'chrome' zu 'browsername': 'firefox'. Mir ist aufgefallen, dass gescheiterte Tests mit Firefox bessere Informationen liefern, also werde ich Firefox weiterhin verwenden. – Charlie

+1

Mit demselben Problem, Wo wird dieses Flag gesetzt? weiß jemand? – Fred

+0

Ich habe gerade angefangen, dies heute (2017-04-03) zu bekommen, obwohl meine Capybara-Suite letzte Woche funktioniert hat. Grrrr –

Antwort

31

Wenn Sie Protractor verwenden, ist dies wahrscheinlich die Konfiguration Sie suchen:

capabilities : { 
    browserName : 'chrome', 
    'chromeOptions': { 
     args: ['--test-type'] 
    } 
}, 
+2

Ich glaube, Elemente in chromeOptions erfordern nicht die führende '- ' Siehe das Beispiel in der Dokumentation hier: https://github.com/angular/protractor/blob/master/docs/browser-setup.md#Adding -chrome-spezifische Optionen –

+0

Funktioniert super! Sollte die akzeptierte Antwort sein. –

26

Die Flagge --ignore-certificate-errors wurde der Liste der "Schlechten Flaggen" von Chrome 35 hinzugefügt, da sie die Sicherheit des Browsers verringert. Die Flagge funktioniert immer noch unabhängig.

Wenn Sie die Eingabeaufforderung "nicht unterstützte Flags" deaktivieren möchten, fügen Sie den von Ihnen verwendeten Befehlszeilenflags --test-type hinzu. Dies sollte den Browser in keiner anderen bemerkenswerten Weise beeinflussen, aber es wird für interne Tests verwendet, also benutzen Sie es auf eigenes Risiko.

Weitere Informationen zum Hinzufügen von Befehlszeilen-Flags finden Sie unter Chromedriver capability docs.

+2

Können Sie das bitte näher ausführen? Meine Tests funktionieren aufgrund dieses Problems nicht mehr. Ich habe versucht, Winkelmesser von der Kommandozeile mit dem folgenden Befehl ohne Glück zu starten:> Knoten Knotenmodule \ Grunt-Winkelmesser-Läufer \ Knotenmodule \ Winkelmesser \ bin \ Webdriver-Manager Start - Test-Typ – user3284007

+2

- Test-Typ unterdrückt die Nachricht nicht, zumindest nicht für mich. – user1205577

+0

wo kann man die "bad flags list" finden? –

13
System.setProperty("webdriver.chrome.driver","<<your chrome path>>"); 
    // To remove message "You are using an unsupported command-line flag: --ignore-certificate-errors. 
    // Stability and security will suffer." 
    // Add an argument 'test-type' 
    DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
    ChromeOptions options = new ChromeOptions(); 
    options.addArguments("test-type"); 
    capabilities.setCapability("chrome.binary","<<your chrome path>>"); 
    capabilities.setCapability(ChromeOptions.CAPABILITY, options); 

    driver = new ChromeDriver(capabilities); 

** Auch das hier für mich gearbeitet ist der Code **

+0

Mein System erkannte weder DesiredCapabilities noch ChromeOptions. Fehler: Kann nicht in einen Typ aufgelöst werden. –

+0

Auch Der Konstruktor ChromeDriver (Capabilities) ist veraltet. –

0

-Code Dies funktionierte sowohl für lokale Webtreiber als auch für Remote-Treiber-Szenarien für Ruby Bindings. Dies unterdrückt die Warnmeldung auf chrome35 (Denken Sie daran, dass Sie 2.10 chromedriver.exe von http://chromedriver.storage.googleapis.com/index.html bekommen haben)

Localwebdriver:

caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => ["test-type" ]}) 

@browser = Selenium::WebDriver.for :chrome,desired_capabilities: caps 

RemoteWebDriver (mit GRID): Beachten Sie, dass durch Komma getrennt -ips im folgenden Code sind die ips, von denen der Grid-Hub Selesen-Befehle empfangen darf. Diese Sicherheitsschicht wurde von chrome35 umgesetzt und chromedriver 2.10 ab

caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => ["test-type","whitelisted-ips=comma-separated-ips"]}) 

@browser = Selenium::WebDriver.for :remote, :url => GRID_HUB_URL,:desired_capabilities => caps 
2

Dieser Fehler auch mir passiert, als ich versuchte „npm Lauf Winkelmesser“ auf Schritt 3 des Angular Tutorial läuft bei https://docs.angularjs.org/tutorial/step_03

I‘ M läuft Chrome Version 35.0.1916.153 auf einem MacBook Pro.

@scheffield - danke, Ihre Lösung hat bei mir funktioniert.

(Auch in diesem Tutorial Schritt 3 ist es nicht offensichtlich, aber wie in den vorherigen Schritten müssen Sie Ihren Webserver trotzdem starten, indem Sie ein neues Terminalfenster in dem Verzeichnis öffnen, in das Sie das Tutorial heruntergeladen und "npm start" ausgegeben haben ". In einem separaten Terminalfenster führen Sie dann" npm run winkelmesser "aus. Mit der Konfiguration der Winkelmesserkonfiguration ging der Fehler weg.

+0

Danke @David Barrows, ich bin in der richtigen Situation, als Sie und Ihre Antwort mir geholfen haben, das Problem zu lösen. – Tony

+0

Ich habe versucht, den Winkelmesser ohne den Webserver laufen zu lassen, und ich habe den Fehler oben. Ich brauchte ein paar Minuten, um zu erkennen, dass der Winkelmesser während des Tests voraussetzt, dass der Server läuft und Karma nicht. –

0
#!/usr/bin/env node 
var webdriver = require('selenium-webdriver'); 
var driver = new webdriver.Builder().withCapabilities({ 
    browserName : 'chrome', 
    'chromeOptions': { 
     args: ['test-type'] 
    } 
}).build(); 
0

Selen mit C# .Net (Selenium + C# .Net)

public static IWebDriver Instance = null; 
ChromeOptions opt = new ChromeOptions(); 

opt.AddArguments("--test-type");<br><br> 
Instance = new ChromeDriver(@"Path To directory containing chromedriver.exe" , opt) ; 

Es funktioniert für Google Chrome Version 47.0.2526.106 m.

-1

Die Nicht-Code-Lösung wird sein:

  1. Gehen Sie das Chrome-Symbol
  2. Rechts klicken und gehen Sie zu den Eigenschaften
  3. Im Zielbereich von add: --test-type
+0

Hatte keinerlei Wirkung. Der Fehler ist weiterhin aufgetreten. –

0

Ich bin mit Java, also weiß ich nicht, ob das für Sie funktioniert, aber es kann helfen.

In meinem Fall hat das Hinzufügen von .addArguments("test-type"); diese Warnung tatsächlich ausgeblendet. Jedoch machte es die Ausführung erstaunlich langsam.

Also habe ich diese Zeile durch die folgenden ersetzt, und es hat gut funktioniert!

options.addArguments("excludeSwitches", "ignore-certificate-errors"); 
Verwandte Themen