RSelenium java.lang.IllegalStateException

时间:2016-06-02 22:52:06

标签: java r google-chrome selenium

我正在尝试使用带有Chrome驱动程序的RSelenium软件包打开远程驱动程序,并遇到以下错误:

Error:   Summary: UnknownError
Detail: An unknown server-side error occurred while processing the command.
class: java.lang.IllegalStateException

此问题先前已在stackoverflow上被问过,但是solution(我完全尝试过)不起作用。我还咨询了thisthis

我在R中的基本代码如下。在以下行remDr$open()之后发生错误。

install.packages("RSelenium")
library(RSelenium)

checkForServer()              
startServer()
Sys.sleep(5.0)
remDr <- remoteDriver( browserName="chrome" )            
remDr$open() 

规格:

  • R:v.3.3.0
  • 使用RStudio v.0.99.902在R中工作
  • 操作系统:OSX El Capital 10.11.3
  • Java:1.8.92.14
  • 我还下载了chrome驱动程序v2.21 here。它目前位于应用程序中的自己的文件夹中。

为了解决这个问题,我尝试过:

  1. 以下startServer()命令的两个替代版本。第一个犯了同样的错误,第二个也告诉我No Selenium Server binary exists. Run checkForServer or start server manually.
    • startServer(args = c("-Dwebdriver.chrome.driver=/mypath/to/chromedriver.exe") , log = FALSE, invisible = FALSE)
    • startServer(dir = FALSE, args = c("-Dwebdriver.chrome.driver=/mypath/to/chromedriver.exe") , log = FALSE, invisible = FALSE)
  2. 在终端中运行以下命令(并在运行R代码时将终端保持打开状态):java -jar /mypath/to/selenium-server-standalone.jar -Dwebdriver.chrome.driver=/mypath/to/chromedriver.exe。这引起了同样的错误。
  3. 创建一个.command文件,其中包含我之前输入上述终端的信息(2),并在R中调用该文件,如下所示。
  4. install.packages("RSelenium")
    library(RSelenium)
    system(paste("open","/mypath/command.command")
    remDr <- remoteDriver( browserName="chrome" )            
    remDr$open()  
    

    这导致以下错误The file could not be executed because you do not have appropriate access privileges.导航到Finder中的.command文件并更改所有共享&amp;阅读权限&amp;写入没有更改错误消息。

    1. 重新安装所有组件 - Chrome驱动程序,Selenium .jar文件,包RSelenium。重新启动R.更新R和RStudio。

    2. 使用默认远程驱动程序(我相信Firefox),如remDr <- remoteDriver$new()。不同的错误:class: org.openqa.selenium.WebDriverException

    3. 更新Firefox以帮助上述5无效。

    4. 帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

在这里打破规则要求澄清。但是这个问题让我发疯了。你可以列出你工作时使用的所有版本。

对我来说:

R 3.3.0 GUI 1.68 Mavericks build

RStudio版本0.99.902

OSX El Capital 10.11.5

Java:1.8.0_91

硒 - 服务器 - 独立-2.53.1.jar

FF 47.0(也尝试了FF 46.0)

仍导致org.openqa.selenium.firefox.NotConnectedException

答案 1 :(得分:-1)

以下解决了这个问题:

checkForServer()              
startServer( args = c( "-port 4455" ), log = FALSE, invisible = FALSE )
remDr <- remoteDriver( browserName="firefox", port=4455 )            
remDr$open( silent=T ) 

我不确定它为什么会起作用(也许有人可以回答),但这就行了。