it-swarm.com.de

ChromeOptions und DesiredCapabilities des Treibers übergeben?

Das neue Google Chrome-Update verursacht diese Meldung im Browser "Sie verwenden ein nicht unterstütztes Befehlszeilenflag: --ignore-certificate-errors. Stabilität und Sicherheit werden leiden." 

Nach dem, was ich in den Selenium-Fehlerberichten gelesen habe, besteht die temporäre Lösung darin, den Web-Treiber zu starten 

options.AddArgument("test-type")

Ich habe DesiredCapabilities bereits beim Erstellen des Treibers übergeben. Wie kann ich ChromeOptions und DesiredCapabilities an den Treiber übergeben?

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--incognito"));

ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");

WebDriver driver = new ChromeDriver(capabilities);
16
Arya

Ich habe das gleiche Problem bekämpft und es endlich geknackt. Grundsätzlich können Sie ChromeOptions zu DesiredCapabilities hinzufügen und dann den Treiber mit der DesiredCapabilities erstellen. Sobald ich es ausprobierte, wurde das Banner los. Wie auch immer, hier ist der Code: 

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
capabilities.setCapability("chrome.binary", "<Path to binary>");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
webDriver = new ChromeDriver(capabilities);
18
JoshM

Meine Antwort wurde hinzugefügt, um Benutzern zu helfen, die mit der neuesten Version von Selenium noch nach ChromeOptions und -Funktionen suchen.

Die Übergabe von Funktionen an den ChromeDriver-Konstruktor ist veraltet von Version 3.6.0. Quellcode Referenz

ChromeDriver(Capabilities capabilities)
Deprecated. 
Use ChromeDriver(ChromeOptions) instead.

Verwenden Sie stattdessen etwas wie folgt:

ChromeOptions options = new ChromeOptions();
options.setAcceptInsecureCerts(true);
options.setUnhandledPromptBehaviour(UnexpectedAlertBehaviour.ACCEPT);
WebDriver driver = new ChromeDriver(options)

Sie können weiterhin Ihre Fähigkeiten definieren, stellen Sie jedoch sicher, dass Sie diese Funktionen mit ChromeOptions wie folgt zusammenführen:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("something", true);

ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
options.merge(capabilities);

Sie können den Artikel unter Selenium ChromeOptions auf eine detailliertere Verwendung von ChromeOptions und Funktionen überprüfen 

3
Dev Raj

kann dies versuchen:

chromeOptions = webdriver.ChromeOptions()
prefs = {"profile.managed_default_content_settings.images":2}
chromeOptions.add_experimental_option("prefs",prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions)

verwandte Informationen finden Sie hier: http://nullege.com/codes/search/Selenium.webdriver.ChromeOptions.add_experimental_option

0
rocky qi

Zu Ihrer Information: Diese Technik scheint mit Chrome 41.0.2272.101m nicht zu funktionieren.

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddExcludedArgument("ignore-certificate-errors");
capabilities = DesiredCapabilities.Chrome();
capabilities.SetCapability(ChromeOptions.Capability, chromeOptions);

new RemoteWebDriver(hubUri, capabilities, TimeSpan.FromSeconds(180))

Erzeugt 

09:39:24.110 WARN - Exception: unknown error: cannot parse capability: chromeOptions
from unknown error: unrecognized chrome option: Arguments
(Driver info: chromedriver=2.10.267521,platform=Windows NT 6.3 x86_64) 
(WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 1.52 seconds
Build info: version: '2.43.0', revision: '597b76b', time: '2014-09-09 20:52:14'
System info: Host: 'T10-E8-GREGPE', ip: '10.123.160.70', os.name: 'Windows 8.1', os.Arch: 'x86', os.version: '6.3', Java.version: '1.8.0_40'
Driver info: org.openqa.Selenium.chrome.ChromeDriver

Das scheint zu funktionieren:

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("test-type");
capabilities = (DesiredCapabilities)chromeOptions.ToCapabilities();

new RemoteWebDriver(hubUri, capabilities, TimeSpan.FromSeconds(180));
0
Greg Page
public void setUp() throws Exception
{
    System.out.println("Launching Google browser");
    System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");   

    ChromeOptions options = new ChromeOptions();
    options.addArguments("disable-infobars");
    Map<String, Object> prefs = new HashMap<String, Object>();
    prefs.put("profile.default_content_setting_values.automatic_downloads", 1);
    options.setExperimentalOption("prefs", prefs);
    prefs.put("download.default_directory", "C:\\Downloads");
    driver = new ChromeDriver(options);
    driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);
    driver.manage().window().maximize(); 
}
0
Jen