【问题标题】:RSelenium headless authentication download fileRSelenium 无头认证下载文件
【发布时间】:2016-04-26 13:21:27
【问题描述】:

我想将此代码用于无头浏览器(例如 phantomjs 或 casperjs),然后在最后下载 csv 文件(而不是本机浏览器的保护程序弹出对话框)。

library("RSelenium")
startServer()
mybrowser <- remoteDriver(browserName = 'chrome')
mybrowser$open()
mybrowser$navigate("http://steamspy.com/login/")
wxbox <- mybrowser$findElement(using = 'xpath', "//*/input[@name = 'username']")
wxbox$sendKeysToElement(list("myusername"))
wxbox <- mybrowser$findElement(using = 'xpath', "//*/input[@name = 'password']")
wxbox$sendKeysToElement(list("mypassword"))
wxbutton <- mybrowser$findElement(using = 'xpath', "//*/button[@name = 'submit']")
wxbutton$clickElement()
mybrowser$navigate("http://steamspy.com/sale.php?tagid=0&from=2015-04-01&to=2016-04-25&submit=")
wxbutton <- mybrowser$findElement(using = 'css selector', "#ToolTables_tablesales_0")
wxbutton$clickElement()

只需将chrome 更改为phantomjs 就会导致在打开和导航页面时出现以下错误:

Error:   Summary: UnknownError
     Detail: An unknown server-side error occurred while processing the command.
     class: org.openqa.selenium.UnsupportedCommandException

【问题讨论】:

标签: r phantomjs


【解决方案1】:

如果您还没有这样做,请安装 PhantomJS:转到 Here。下载windows zip文件并解压;

通过转到控制面板 -> 系统 -> 高级系统设置,将通常位于 extractedFolder\bin 中的 phantoms.exe 的路径添加到环境变量路径-> 环境变量,并将路径添加到 PATH 变量中,如果您已经知道怎么做,请忽略它;

重新启动您的 RStudio 或 R 会话;

运行以下命令:

library(RSelenium)
pJS <- phantom()
myBrowser <- remoteDriver(browserName = "phantomjs")
myBrowser$open()

【讨论】:

  • PhantomJS 看不到 Chrome 可以看到的元素。我在wxbutton &lt;- mybrowser$findElement(using = 'css selector', "#ToolTables_tablesales_0") 得到Error: Summary: NoSuchElement Detail: An element could not be located on the page using the given search parameters. class: org.openqa.selenium.NoSuchElementException
  • wxbutton &lt;- mybrowser$findElement(using = 'css selector', "#ToolTables_tablesales_0"),您要查找哪个元素?
  • csv下载按钮,登录后才会出现。PhanthomJS在进入新页面之前可能不会保存认证状态。
  • 它应该是正常的,因为它是一个浏览器。您是否将用户名和密码替换为您的登录信息?
  • 并且在尝试查找元素之前尝试mybrowser$setWindowSize(1400, 1000)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 2017-07-06
  • 1970-01-01
  • 2021-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多