【问题标题】:RSelenium error: NotConnectedExceptionRSelenium 错误:NotConnectedException
【发布时间】:2015-06-23 09:48:04
【问题描述】:

在 SO (Question 1)(Question 2) 中已经提出了一些与此类似的问题,但没有一个问题得到答案(最后一个问题有 @jdharrison 的相关评论,指示 OP 提出问题) .这是我的问题:

我曾经有一个非常简单的脚本来从网站获取一些信息到 R:

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

当我现在尝试运行脚本时,在 rd$open() 之后它确实打开了一个 firefox 窗口(保持空白大约 30 秒),然后关闭并返回错误:

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

阅读 SO 和其他一些网站上的不同帖子,似乎问题是由 firefox 和 RSelenium 版本不兼容引起的。

在 GitHub 的 selenium 论坛上,有一个 thread 声明将 selenium 从 2.44 更新到 2.45 解决了这个问题。但是,如果 RSelenium 似乎是最新的,我不知道如何更新 selenium:

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

还有我的构建(可能是罪魁祸首):

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"

如何从 R 更新 selenium(当然,如果这有意义的话)?,

更好的是:如何避免出现在我之前工作的脚本中的错误?

谢谢!

【问题讨论】:

  • 我猜你已经尝试过使用不同的 url。一种解决方法是使用PhanomJS
  • @dimitiris_ps 感谢您的关注。我没有尝试使用不同的网址。我什至无法到达rd$navigate 部分,因为它在rd$open() 之后就崩溃了。我将尝试 PhatomJS 并在此处发布任何结果。
  • 如果您使用更高版本,请恢复到 Firefox 34.0.5。 (我也有这个错误。切换回来解决了这个问题。)

标签: r rselenium


【解决方案1】:

更新 selenium 服务器足以让我继续使用我的实际 Firefox 版本 (37.0.1)。 运行代码:

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

将我的 RSelenium 版本从 2.44 更新到 2.45。我马上就可以像以前一样打开浏览器了。

【讨论】:

  • 浏览器正在移动目标并经常更新。 Firefox 有一个 LTS(长期支持)版本(我认为他们实际上将其称为 ESR - 扩展支持版本),目前是 firefox 31,之前是 firefox 24。当前最新版本的 Selenium Server 应该支持 ESR 以及最新的 firefox 版本。您经常可以在 [CHANGELOG][code.google.com/p/selenium/source/browse/java/CHANGELOG] 上看到支持哪些 firefox 版本。 startServer(update = TRUE) 也应该可以,但清除旧文件也无妨。
  • 如果 firefox 更新一般你需要一个最新的 Selenium 服务器来驱动它。 firefox 更新和 Selenium Server 更新之间有时会有一个小的延迟。 2.45.0 是最新的 Selenium Server,Firefox 目前是 37.0.1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
  • 2014-11-02
相关资源
最近更新 更多