繁体   English   中英

如何使用 RSelenium 运行 javascript?

[英]How to run javascript using RSelenium?

我正在尝试使用 JS 调用单击网页上的输入对象。 首先,我使用 RSelenium 来拉出页面:

library(RSelenium)

rD <- rsDriver(port = 4444L, verbose = FALSE)
remDr <- rD$client
remDr$navigate('https://www.tripadvisor.com/Hotel_Review-g293913-d306432-Reviews-Ambassador_Hotel_Taipei-Taipei.html')

在该页面中,我尝试单击下方菜单中的“所有语言”按钮:

在此处输入图片说明

我试图通过调用 JS 来触发点击,这在 chrome 控制台中运行script时有效

script <- "document.getElementById('filters_detail_language_filterLang_ALL').click();"
remDr$executeScript(script, args=list())

但我收到以下错误:

remDr$executeScript(script, args = list())

Selenium 消息:未知错误:'args' 必须是一个列表(会话信息:chrome=64.0.3282.186)(驱动程序信息:chromedriver=2.36.540469(1881fd7f8641508feb5166b7cae561d877238cfa2),4.0.3282.186Mac260

错误:摘要:未知错误详细信息:处理命令时发生未知的服务器端错误。 更多细节:运行 errorDetails 方法

RSelenium 中可能存在这样的错误。

尝试在列表方法中传递一个虚拟参数。

使用这个:

remDr$executeScript(script, args = list("fugazi"))
element = remDr$findElement(using='xpath','//*
[@id="filters_detail_language_filterLang_ALL"]')
script <-"document.getElementById('filters_detail_language_filterLang_ALL').click();"
remDr$executeScript(script, args=list(element))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM