6

There are some questions similar to this one already asked in SO (Question 1), (Question 2), but none of those has received an answer (the last one has a relevant comment by @jdharrison directing the OP to file an issue). This is my problem:

I used to have a very simple script to get some information from a website into R:

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

When I now try and run the script, after the rd$open() it does open a firefox window (which keeps blank for about 30 seconds), and then closes and returns an error:

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

Reading through different posts at SO and some other sites, it seems the problem is caused by an incompatibility of firefox and RSelenium versions.

At the selenium forum in GitHub, there is a thread where it's stated that updating selenium from 2.44 to 2.45 solved the problem. But I'm clueless as to how I can update selenium, if RSelenium seems to be up to date:

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

And my build (likely culprit):

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"

How can I do to update selenium from R (if that makes any sense, of course)?,

Even better: how can I avoid the error that is showing in my previously-working script?

Thanks!

Community
  • 1
  • 1
PavoDive
  • 6,322
  • 2
  • 29
  • 55
  • I guess you have tried it with different urls. A workaround could be to use `PhanomJS` – dimitris_ps Apr 16 '15 at 19:21
  • @dimitiris_ps Thanks for your interest. I didn't try with different urls. I'm not even able to get to the `rd$navigate` part, as it crashes just after `rd$open()`. I'll give a try to PhatomJS and post here any result. – PavoDive Apr 16 '15 at 20:10
  • Revert to Firefox 34.0.5 if you use a higher version. (I had that error, too. And switching back solved the issue.) – lukeA Apr 16 '15 at 21:13

1 Answers1

2

Updating the selenium server was enough to keep working with my actual firefox version (37.0.1). Running the code:

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

updated my RSelenium build from 2.44 to 2.45. Instantly I was able to open a browser as it used to do.

PavoDive
  • 6,322
  • 2
  • 29
  • 55
  • The browsers are moving targets and update often. Firefox has a LTS (long term support) version (I think they actually term it a ESR - Extended Support Release) which is firefox 31 currently and was firefox 24 previously. The current uptodate version of Selenium Server should support the ESR and also recent firefox versions. You can often see which firefox versions are support on the [CHANGELOG][https://code.google.com/p/selenium/source/browse/java/CHANGELOG]. `startServer(update = TRUE)` should also work but clearing the old files is no harm. – jdharrison Apr 17 '15 at 01:23
  • If firefox updates generally you need an up-to-date Selenium Server to drive it. There is sometimes a small lag between firefox updating and Selenium Server updating. 2.45.0 is most recent Selenium Server and Firefox is currently 37.0.1. – jdharrison Apr 17 '15 at 01:26