2016-04-26 12 views
-1

Ich möchte diesen Code mit einem Headless-Browser (z. B. Phantomjs oder Casperjs) verwenden und laden Sie dann die CSV-Datei am Ende (anstelle der ursprünglichen Browser-Popup-Dialog).RSelenium Headless Authentifizierung Download-Datei

library("RSelenium") 
startServer() 
mybrowser <- remoteDriver(browserName = 'chrome') 
mybrowser$open() 
mybrowser$navigate("http://steamspy.com/login/") 
wxbox <- mybrowser$findElement(using = 'xpath', "//*/input[@name = 'username']") 
wxbox$sendKeysToElement(list("myusername")) 
wxbox <- mybrowser$findElement(using = 'xpath', "//*/input[@name = 'password']") 
wxbox$sendKeysToElement(list("mypassword")) 
wxbutton <- mybrowser$findElement(using = 'xpath', "//*/button[@name = 'submit']") 
wxbutton$clickElement() 
mybrowser$navigate("http://steamspy.com/sale.php?tagid=0&from=2015-04-01&to=2016-04-25&submit=") 
wxbutton <- mybrowser$findElement(using = 'css selector', "#ToolTables_tablesales_0") 
wxbutton$clickElement() 

einfach durch chrome mit phantomjs führt zu diesem folgenden Fehler beim Öffnen zu ändern und die Navigation der Seite:

Error: Summary: UnknownError 
    Detail: An unknown server-side error occurred while processing the command. 
    class: org.openqa.selenium.UnsupportedCommandException 
+0

Welches Betriebssystem verwenden Sie? – Psidom

+0

@Psidom Windows 10 – noblabla

+0

Vielleicht ist dies relevant: http://StackOverflow.com/Questions/33540954/How-to-Open-google-chrome-with-relenium – MrFlick

Antwort

0

PhantomJS installieren, wenn Sie dies nicht getan haben: Zur Here. Laden Sie die Windows-Zip-Datei herunter und extrahieren Sie sie;

Fügen Sie den Pfad zu phantoms.exe die in der Regel in der Bin extrahierter \ für die Umwelt, indem Sie auf Systemsteuerung Variable Pfad -> System -> Erweiterte Systemeinstellungen -> Umgebungsvariablen und den Pfad hinzufügen zu der PATH-Variable, ignoriere dies, wenn du bereits weißt, wie das geht;

Starten Sie Ihre RStudio oder R Sitzung neu;

Führen Sie die folgenden Schritte aus:

library(RSelenium) 
pJS <- phantom() 
myBrowser <- remoteDriver(browserName = "phantomjs") 
myBrowser$open() 
+0

PhantomJS erkennt das Element, das Chrome verwendet, nicht. Ich bekomme 'Fehler: \t Zusammenfassung: NoSuchElement \t Detail: Ein Element konnte nicht auf der Seite mit den angegebenen Suchparametern gefunden werden. \t Klasse: org.openqa.selenium.NoSuchElementException' bei 'wxbutton <- meinBrowser $ findElement (using = 'css selector'," #ToolTables_tablesales_0 ")' – noblabla

+0

Von 'wxbutton <- meinbrowser $ findElement (using = 'css selector' , "#ToolTables_tablesales_0") ', welches Element suchen Sie? – Psidom

+0

Die CSV-Download-Schaltfläche wird nur angezeigt, wenn Sie angemeldet sind. PhanthomJS speichert den Authentifizierungsstatus möglicherweise nicht, bevor er auf die neue Seite wechselt. – noblabla