RSelenium单选按钮单击似乎不起作用

时间:2014-11-03 23:52:20

标签: r selenium-webdriver

我的例子是:

library(RSelenium)
remDr <- remoteDriver()
remDr$open(silent = TRUE)
remDr$navigate("http://www.nngroup.com/articles/checkboxes-vs-radio-buttons/")
remDr$findElement("id", "three")$click()

这似乎不起作用。有人可以帮助解决错误吗?

2 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。查看?remoteDriver click方法被描述为:

click(buttonId = 0) Click any mouse button (at the coordinates set by the last mouseMoveToLocation() command). buttonId - any one of 'LEFT'/0 'MIDDLE'/1 'RIGHT'/2. Defaults to 'LEFT'

此方法用于点击屏幕上的某个位置。您的代码可以稍微更改,以便分配findElement方法结果。

library(RSelenium)
# startServer() # start Selenium Server if needed
remDr <- remoteDriver()
remDr$open(silent = TRUE)
remDr$navigate("http://www.nngroup.com/articles/checkboxes-vs-radio-buttons/")
webElem <- remDr$findElement("id", "three")

> class(webElem)
[1] "webElement"
attr(,"package")
[1] "RSelenium"

查看webElement类的文档,有一个方法clickElement

webElem$clickElement()

使用此方法应该产生所需的结果。

答案 1 :(得分:0)

我不知道为什么,但是我在各种论坛上发现的东西对我来说不起作用。

  1. 使用clickElement()方法:https://stackoverflow.com/a/26727185/5940139
  2. 对此进行了说明
webElem <- remDr$findElement("id", "three")
webElem$clickElement()
  1. 使用向元素发送回车键。 https://github.com/ropensci/RSelenium/issues/20#issuecomment-499974957
webElem <- remDr$findElement("id", "three")
webElem$sendKeysToElement(list(key="enter"))
  1. 在浏览器中执行javascript代码。
remDr$executeScript("document.getElementById('three').click()")

当前两个对我不起作用时,最后一个对我有用。