【问题标题】:RSelenium error driver issues?RSelenium 错误驱动程序问题?
【发布时间】:2014-11-02 21:53:28
【问题描述】:

当尝试运行 RSelenium 示例以尝试执行一些网页抓取时,我在尝试打开服务器时收到以下错误消息...我不确定问题是什么...

library(RSelenium)
startServer()

# use default server initialisation values
remDr <- remoteDriver$new()

# send request to server to initialise session
remDr$open()

[1] "Connecting to remote server"
$message
[1] "GET /session/\nBuild info: version: '2.42.0', revision: '5e82430', time: '2014-05-22 20:18:07'\nSystem info: host: 'xxxxx-PC', ip: 'xx.xxx.xx.xx', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.7.0_60'\nDriver info: driver.version: unknown"

$localizedMessage
[1] "GET /session/\nBuild info: version: '2.42.0', revision: '5e82430', time: '2014-05-22 20:18:07'\nSystem info: host: 'xxxx-PC', ip: 'xx.xxx.xx.xx', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.7.0_60'\nDriver info: driver.version: unknown"

$suppressed
list()

$cause
NULL

$systemInformation
[1] "System info: host: 'xxxxx-PC', ip: 'xx.xx.xx.xx', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.7.0_60'"

$supportUrl
NULL

$class
[1] "org.openqa.selenium.UnsupportedCommandException"

$additionalInformation
[1] "\nDriver info: driver.version: unknown"

$hCode
[1] 142976762

然后是一些stackTrace信息,都是NULL

关于如何解决这个问题的任何想法?

另外,在尝试运行演示时,我遇到以下问题...(但认为这是因为 RSelenium::startServer() 没有先运行)

> demo(selExecJSexample)


demo(selExecJSexample)
---- ~~~~~~~~~~~~~~~~

  Type  <Return>     to start : 

  > # see http://stackoverflow.com/questions/22121006/how-to-scrape-this-squawka-page/22127054#22127054
  > # RSelenium::startServer() # if needed
  > require(RSelenium)

> remDr <- remoteDriver()

> remDr$open()
[1] "Connecting to remote server"
Error in function (type, msg, asError = TRUE)  : couldn't connect to host

【问题讨论】:

  • 你想驱动什么版本的火狐?
  • 我尝试使用的firefox版本刚刚下载,所以我认为它是最新版本... 32.0
  • 这是一个已知问题groups.google.com/forum/#!topic/selenium-users/Cutwloq3Sgk 我想应该很快就会发布一个 2.43.0 的 selenium 服务器。
  • 如果尝试驱动谷歌浏览器,它可以工作吗?如果是这样,我需要进行哪些更改才能使其正常工作?
  • 请在github.com/ropensci/RSelenium 提出问题并仔细研究问题。由于 selenium 发布周期和浏览器更新的频率,这种情况会不时发生。最好在 github 上处理,至少我们用 cmets 重载这个线程;)

标签: r web-scraping


【解决方案1】:

这是 selenium 发布周期与 firefox 发布周期略微不同步的问题。 http://selenium-release.storage.googleapis.com/index.html 现在包含更新的 Selenium 服务器(当前版本 2.43.0)。运行 RSelenium::checkForServerupdate = TRUE 将在本地更新 Selenium 服务器,并且最新的 firefox 应该可以运行:

> library(RSelenium)
> checkForServer(update = TRUE)
[1] "DOWNLOADING STANDALONE SELENIUM SERVER. THIS MAY TAKE SEVERAL MINUTES"
trying URL 'http://selenium-release.storage.googleapis.com/2.43/selenium-server-standalone-2.43.0.jar'
Content type 'application/x-java-archive' length 34932130 bytes (33.3 Mb)
opened URL
downloaded 33.3 Mb

> remDr <- remoteDriver()
> startServer()
> remDr$open()
[1] "Connecting to remote server"
$platform
[1] "WINDOWS"

$acceptSslCerts
[1] TRUE

$javascriptEnabled
[1] TRUE

$browserName
[1] "firefox"

$rotatable
[1] FALSE

$locationContextEnabled
[1] TRUE

$webdriver.remote.sessionid
[1] "a2eee1ff-d9fd-41ce-ac0e-e11ce24cb516"

$version
[1] "32.0"

$cssSelectorsEnabled
[1] TRUE

$databaseEnabled
[1] TRUE

$handlesAlerts
[1] TRUE

$webStorageEnabled
[1] TRUE

$nativeEvents
[1] TRUE

$applicationCacheEnabled
[1] TRUE

$takesScreenshot
[1] TRUE

$id
[1] "a2eee1ff-d9fd-41ce-ac0e-e11ce24cb516"

运行 remDr$getStatus() 应该显示一切都是最新的:

> remDr$getStatus()
$os
$os$arch
[1] "amd64"

$os$name
[1] "Windows 8.1"

$os$version
[1] "6.3"


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


$build
$build$revision
[1] "597b76b"

$build$time
[1] "2014-09-09 20:52:14"

$build$version
[1] "2.43.0"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 2022-01-28
    相关资源
    最近更新 更多