2015-04-16 5 views
6

Jest kilka pytań podobnych do tego już zadawanego w SO (Question 1), (Question 2), ale żadna z nich nie została odebrana (ostatnia ma odpowiedni komentarz przez @jdharrison kierujący OP do zgłoszenia problemu) . To jest mój problem:Błąd rtęci: NotConnectedException

Kiedyś miałem bardzo prosty skrypt, aby uzyskać pewne informacje ze strony internetowej do R:

startServer() 
rd<-remoteDriver(remoteServerAddr="localhost",port=4444,browserName="firefox") 
rd$open() 
rd$navigate(url) #with a defined url 

Kiedy teraz spróbować uruchomić skrypt, po rd$open() to nie uruchomisz okna Firefoksa (która trzyma pusty przez około 30 sekund), a następnie zamyka się i zwraca błąd:

rd$open() 
[1] "Connecting to remote server" 
Error: Summary: UnknownError 
    Detail: An unknown server-side error occurred while processing the command. 
    class: org.openqa.selenium.firefox.NotConnectedException 

poprzez czytanie różnych stanowisk na SO i niektórych innych stron, wydaje się, że problem jest spowodowany przez niezgodność Firefox i Wersje RSelenium.

Na forum selenowym w GitHub znajduje się thread, gdzie stwierdzono, że aktualizacja selenu z 2,44 do 2,45 rozwiązała problem. Jestem jednak pojęcia, w jaki sposób mogę zaktualizować selen, jeśli RSelenium wydaje się być na bieżąco:

sessionInfo() 
R version 3.1.2 (2014-10-31) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=Spanish_Colombia.1252 
[2] LC_CTYPE=Spanish_Colombia.1252 
[3] LC_MONETARY=Spanish_Colombia.1252 
[4] LC_NUMERIC=C      
[5] LC_TIME=Spanish_Colombia.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods 
[7] base  

other attached packages: 
[1] RSelenium_1.3.5 XML_3.98-1.1 RJSONIO_1.3-0 RCurl_1.95-4.3 
[5] bitops_1.0-6 

loaded via a namespace (and not attached): 
[1] caTools_1.17.1 tools_3.1.2 

i mój build (prawdopodobną przyczyną):

rd$getStatus() 
$build 
$build$version 
[1] "2.44.0" 

$build$revision 
[1] "76d78cf" 

$build$time 
[1] "2014-10-23 20:02:37" 


$os 
$os$name 
[1] "Windows 8" 

$os$arch 
[1] "amd64" 

$os$version 
[1] "6.2" 


$java 
$java$version 
[1] "1.7.0_45" 

Jak mogę zaktualizować selen z R (jeśli to ma oczywiście sens) ?,

Jeszcze lepiej: jak mogę uniknąć błędu, który pojawia się w moim wcześniej działającym skrypcie?

Dzięki!

+0

Domyślam się, że próbowałem go z różnymi adresami URL. Rozwiązaniem może być użycie 'PhanomJS' –

+0

@dimitiris_ps Dzięki za zainteresowanie. Nie próbowałem używać różnych adresów URL. Nie mogę nawet dostać się do części 'rd $ navigate', ponieważ zawiesza się zaraz po' rd $ open() '. Spróbuję PhatomJS i zamieścić tutaj dowolny wynik. – PavoDive

+0

Powróć do Firefoksa 34.0.5, jeśli używasz wyższej wersji. (Miałem również ten błąd, a przełączanie z powrotem rozwiązało problem.) – lukeA

Odpowiedz

2

Aktualizowanie serwera selenowego wystarczyło, aby kontynuować pracę z moją aktualną wersją firefox (37.0.1). Uruchamianie kodu:

unlink(system.file("bin", package = "RSelenium"), recursive = T) 
checkForServer() 

aktualizowane mój RSelenium budować od 2,44 do 2,45. Natychmiast mogłem otworzyć przeglądarkę tak jak kiedyś.

+0

Przeglądarki często poruszają się i często aktualizują. Firefox ma wersję LTS (wsparcie długoterminowe) (myślę, że faktycznie nazywają to ESR - Extended Support Release), która jest obecnie firefoxem 31 i była wcześniej firefox 24. Aktualna wersja serwera Selenium powinna obsługiwać ESR, a także najnowsze wersje firefox. Często można zobaczyć, które wersje Firefoksa są obsługiwane w [CHANGELOG] [https://code.google.com/p/selenium/source/browse/java/CHANGELOG]. 'startServer (update = TRUE)' również powinien działać, ale czyszczenie starych plików nie jest szkodliwe. – jdharrison

+0

Jeśli aktualizacje firefox są ogólnie potrzebne, do ich uruchomienia potrzebny jest zaktualizowany serwer Selenium. Czasami pomiędzy aktualizacją firefox a aktualizacją serwera Selenium występuje niewielkie opóźnienie. 2.45.0 to najnowszy serwer Selenium, a Firefox to obecnie 37.0.1. – jdharrison

Powiązane problemy