点击所有[Ruby Selenium-webdriver]的复选框

时间:2014-02-22 19:28:40

标签: ruby selenium-webdriver

如下所示的按钮大量排列。 按钮或减少它或根据日期增加。 "值"的内容只是改变。

<input type="checkbox" value="021258" name="xbutton"></input>
<input type="checkbox" value="084192" name="xbutton"></input>
<input type="checkbox" value="095842" name="xbutton"></input>
<input type="checkbox" value="096325" name="xbutton"></input>
...
...

我想操作就像检查所有这些。 我认为它可以响应各种情况,非xpath也可以。 它似乎没有点击第一个它是下面的东西。

driver.find_element(:name, "xbutton").click

1 个答案:

答案 0 :(得分:1)

我首先在文件test.html中保存,仅用于测试所有html部分,如下所示:

<input type="checkbox" value="021258" name="xbutton"></input>
<input type="checkbox" value="084192" name="xbutton"></input>
<input type="checkbox" value="095842" name="xbutton"></input>
<input type="checkbox" value="096325" name="xbutton"></input>

现在检查每个复选框,我编写了如下代码:

driver = Selenium::WebDriver.for :firefox
driver.navigate.to "file:///home/kirti/workspace/Ruby/test.html"

elements_to_click = driver.find_elements(:xpath, "//input[@name='xbutton']")
# below code will check only those check boxes which are not checked previously.
elements_to_click.each { |e| e.click if e.attribute('checked').nil? }

下面是截图:

**check box** :