0

Ich möchte einige Ressourcen in meinen Low-Spec-Windows-Boxen speichern, indem Sie den Browser in einem Headless-Modus ausführen. Soweit mir bekannt ist, PhantomJS + GhostDriver ist die Standardwahl für solche Aufgabe mit Selenium Webdriver verwendet werden. Jedoch nach dem Versuch es und sofort in Probleme mit Alarmen Umgang mit der doesn't seem to be supported by PhantomJS. Speziell wird die folgende Ausnahme zurückgegeben:Headless/GUIless Automatisierung mit Selenium Webdriver

[ERROR - 2016-08-01T04:24:24.894Z] RouterReqHand - _handle.error - {"name":"Invalid Command Method"," . . . "} 

als Ergebnis nicht getAlertText Stütz WebDriver Command bei der Durchführung:

Alert alert = driver.switchTo().alert(); 

und speziell dieses Verfahren in EventFiringWebDriver implementiert:

public Alert alert() { 
    return targetLocator.alert(); 
} 

I bin auf der Suche nach einem alternativen Ansatz oder einem umsetzbaren Workaround. Jemand?

+0

Was meinst du, wird nicht von PhantomJS unterstützt? Es bedeutet nur, dass die Warnung nicht vom Treiber selbst gehandhabt werden kann. Sie müssen das Problem lösen, indem Sie in die Warnmeldung wechseln und Ihre Entscheidung akzeptieren oder ablehnen ... –

+0

@SaurabhGaur Ich meine, dass 'getAlertText' WebDriver' Command' nicht intern unterstützt wird und auch nicht eine Ausnahme zurückgeben Siehe meine Bearbeitung. –

+0

Sie rufen die falsche Methode auf. Es ist 'alert.getText();' statt .. :) –

Antwort

2

ich in der Lage gewesen um das zu arbeiten, indem sie die Warnung Handhabung der Ausführung direkt mit JavaScript wie folgt aus:

JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; 
jsExecutor.executeScript("window.alert = function(){}"); 
jsExecutor.executeScript("window.confirm = function(){return true;}"); 

Im Moment scheint es keine Möglichkeit, dass der Betrieb direkt über WebDriver Schnittstelle für PhantomJS auszuführen .

+1

Auch die Lösung, wenn Sie Chrom Kanarienvogel im kopflosen Modus laufen, danke! –