我遇到了这样一个问题:我有一个使用RSelenium来浏览页面,点击按钮和收集数据的Rscript。我将此脚本作为函数包含在我的shinyApp中。当我从我的机器上运行时,一切都按预期进行:点击按钮后,firefox启动并正确运行。
当我想在我公司的Rstudio服务器(在Linux下)发布脚本以便通过链接提供对该工具(在Windows下编写)的访问时,出现了麻烦。运行之后:
rD<-rsDriver(port=4441L, browser="firefox", chromever=NULL, iedrver = NULL, phantomver = NULL)
A接收此输出:
$client
[1] "No sessionInfo. Client browser is mostly likely not opened."
$server
Process Handle
command : /tmp/RtmpElIBko/file3a0241d505d8.sh
system id : 15293
state : exited
所以服务器正在运行,但无法打开浏览器
服务器日志是:
$stderr
[1] "14:22:06.908 INFO [GridLauncherV3.launch] - Selenium build info: version: '3.12.0', revision: '7c6e0b3'"
[2] "14:22:06.910 INFO [GridLauncherV3$1.launch] - Launching a standalone Selenium Server on port 4441"
[3] "2018-05-15 14:22:07.026:INFO::main: Logging initialized @452ms to org.seleniumhq.jetty9.util.log.StdErrLog"
[4] "14:22:07.227 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4441"
[5] "14:22:08.467 INFO [ActiveSessionFactory.apply] - Capabilities are: Capabilities {browserName: firefox, javascriptEnabled: true, nativeEvents: true, version: }"
[6] "14:22:08.469 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.firefox.GeckoDriverService)"
[7] "1526383328500\tgeckodriver\tINFO\tgeckodriver 0.20.1"
[8] "1526383328506\tgeckodriver\tINFO\tListening on 127.0.0.1:30716"
[9] "1526383328777\tmozrunner::runner\tINFO\tRunning command: \"/usr/bin/firefox\" \"-marionette\" \"-profile\" \"/tmp/rust_mozprofile.KCqtcRfWkHTS\""
[10] "No protocol specified"
[11] "Error: cannot open display: :0"
我的想法:在本地机器上我安装了浏览器,它的路径存储在PATH
变量中。我在服务器上什么都没有,所以不清楚应该打开什么。
我尝试做什么:此时我正在等待我的IT部门在服务器上安装浏览器(我甚至不知道它是否听起来像是疯狂)因为我没有权限。 我将Mozilla浏览器从我的计算机上传到服务器并运行这样的行来直接启动没有RSelenium的浏览器:
system('java -Dwebdriver.firefox.bin="\\R\\Wordstat Yandex\\Mozilla\\firefox.exe"')
system('java -Dwebdriver.gecko.driver,"R\\Wordstat Yandex\\geckodriver"')
system('export PATH=$PATH:"\\R\\Wordstat Yandex\\Mozilla\\firefox.exe"')
system("./firefox.exe")
返回权限错误:
sh: ./firefox.exe: Permission denied
所以我的问题是:
此时我在谷歌看到的是如何使用RSelenium测试shinyapp。如果我将这两个单词放在一个搜索查询中,结果大致相同。
非常感谢任何帮助)
答案 0 :(得分:0)