Relenium:如何选择复选框?

时间:2014-01-21 10:12:02

标签: r selenium

我正在试验Selenium的R端口,即最近发布的Relenium。到目前为止,使用Relenium在页面上查找Web元素似乎很简单。但是,我在选择和取消选中复选框时遇到了困难。鉴于以下代码,我希望网页上的复选框状态发生一些变化:

library(relenium)
firefox <- firefoxClass$new()
firefox$get("http://jamaserv.jama.or.jp/newdb/eng/prod4/prod4TsMkEntry.html")
firefox$printHtml()

chkbox <- firefox$findElementByXPath("//input[@name='chkCarMaker4All'][@type='checkbox']")

chkbox$isSelected()
chkbox$click()
chkbox$isSelected()

我得到的是这,这表明状态没有变化:

chkbox$isSelected() # query checkbox state
[1] TRUE
> chkbox$click() # to deselect box
> chkbox$isSelected()
[1] TRUE # no change in state?
> 

我已经查看了在其他语言(例如this one for Java)中使用Selenium的相关问题,但是没有将它们应用到我自己的案例中并取得任何成功。这是我第一次使用Selenium,因此我可能会错过其Relenium变体中的一些明显的东西。任何关于如何选择/取消选择复选框的指示都将不胜感激。

1 个答案:

答案 0 :(得分:0)

事实证明,这是Firefox,Selenium和Windows 7之间的一些奇怪互动的结果。

如果在Windows 7显示设置中,字体设置为100%以外的任何值,则Selenium将单击页面元素。我的字体设置为125%。将此重置为100%后,我可以在Relenium中设置和取消设置复选框,因此它似乎不是特定于Relenium的。

this Stack Overflow question中提到了该问题,并在this Selenium问题报告页面上进行了详细说明和屏幕截图。感谢Relenium的共同作者Lluis Ramon找到了这个解决方案。