2014-12-22 1 views
5

Ich kann nicht finden, wie PhantomJS mit Befehlszeilenoptionen wie --cookies-file=/path/to/cookies.txt und andere beginnen ...Wie starte ich PhantomJS mit Kommandozeilenoptionen in Selen?

Versuchte driver = webdriver.PhantomJS('--cookies-file=/tmp/ph_cook.txt') aber nichts.

Aus unbekannten Gründen add_cookie nicht funktionieren, um protokolliert zu bleiben.

Ich versuchte PhantomJS wie folgt zu starten:

driver = webdriver.PhantomJS(executable_path = "phantomjs --cookies-file=/tmp/ph_cook.txt --webdriver") 

aber immer Fehler: indem sie als eine Liste der

raise WebDriverException("Unable to start phantomjs with ghostdriver.", e) 
selenium.common.exceptions.WebDriverException: Message: Unable to start phantomjs with ghost driver. 
+0

Ist dies ein Duplikat von http://stackoverflow.com/q/17788223/3124333? – SiKing

+0

@SiKing Falsche Sprache, aber ich habe das Duplikat noch nicht gefunden. Es muss aber sein. –

+0

@ArtjomB. Es ist alles Selenium, die Sprachbindungen sollten keine Rolle spielen. – SiKing

Antwort

7

Sie Kommandozeilenargumente an die PhantomJS Instanz hinter den Kulissen passieren kann service_args Argument:

webdriver.PhantomJS(service_args=['--cookies-file=/tmp/ph_cook.txt']) 

Wenn der Treiber nicht gestartet werden kann, die Die Sprachbindungen sind wahrscheinlich nicht in der Lage, den Speicherort der PhantomJS-Programmdatei richtig zu bestimmen. Möglicherweise müssen Sie zusätzlich den vollständigen Pfad an das Argument executable_path übergeben. Beachten Sie, dass die eigentliche ausführbare Datei nicht direkt im globalen Paketverzeichnis, sondern in einem Unterordner davon liegt, wenn Sie PhantomJS über npm installiert haben.

+0

Gibt es eine Möglichkeit, dies zu tun, wenn Sie webdriver.Remote verwenden? Mit anderen Worten, wenn ich phantomJS auf Selenehub laufen lasse, kann ich ihm einen Proxy übergeben? webdriver.Remote akzeptiert service_args nicht als Parameter – izyda