这是有问题的项目 - 特别是那个小插图: http://screencast.com/t/NMPOM9Ok58q
正如您所看到的,在同一页面中有多个,它们都有相同的类等。
我尝试了几种不同的路线,但我无法成功点击该项目。
我总是想点击该页面上的最后一个(它们的数量是动态的,所以有时它是第二个,有时它是第6个 - 所以用特定的数字引用它不起作用)< / p>
感谢您的帮助(我的测试是用ruby编写的,使用selenium和testunit)
以下是我尝试的一些内容以及这些内容的一些变体(实际上没有一个点击该项目)
@driver.find_element(:class, "dropdown-toggle")[-1].click
@driver.find_element(:css, "(//*[contains,'a.dropdown-toggle')]").click
element_present?(:css, "div.dropdown.open > a.dropdown-toggle").click
@driver.find_element(:css, "div.dropdown.open > a.dropdown-toggle").click
@driver.find_elements(:css, "caret")[-1].click
@driver.find_element(:css, "caret:last-of-type").click
@driver.find_element(:css, "div.dropdown.open > a.dropdown-toggle:last-child").click
@driver.find_element(:class, "span1").find_element(:tag_name, "a").click
^ This one actually is the only one that clicks anything - but it only clicks the first carat.
最终我正在做的测试是添加一个过滤器,关闭过滤器窗口,重新打开过滤器窗口,删除前一个过滤器,添加一个新过滤器并关闭窗口。
答案 0 :(得分:0)
如何使用CSS最后一个子选择器?
@driver.find_element(:css, "div.dropdown.open > a.dropdown-toggle:last-child").click
答案 1 :(得分:0)
如果<div class="span1">
是唯一的,您可以尝试以下方式:
@driver.find_element(:class, "span1").find_element(:tag_name, "a").click
好的,所以,如果你需要点击所有链接,或者只是点击其中一些链接,那么:
@links = @driver.find_element(:class, "span1").find_elements(:tag_name, "a")
@links[0].click
- 第一个链接
@links[1].click
- 第二个链接
等