这是有问题的项目 - 特别是那个小插图:http://screencast.com/t/NMPOM9Ok58q
正如您所看到的,在同一页面中有多个,它们都有相同的类等。
我尝试了几种不同的路线,但我无法成功点击该项目。
我总是想点击该页面上的最后一个(它们的数量是动态的,所以有时它是第二个,有时候它是第6个 - 所以用它来指代它具体数字不起作用)
感谢您的帮助(我的测试是用ruby编写的,使用selenium和testunit)页面本身是使用Angular在html5中编写的。
以下是我尝试过的一些内容以及这些内容的一些变体。
@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.
@links = @driver.find_element(:class, "span1").find_elements(:tag_name, "a")
@links.last.click
^ This one seems promising but produces an 'element not visible' error. Seen here: http://screencast.com/t/dcN4EZW8UZf
答案 0 :(得分:1)
尝试使用绿色div上的nth-last-child(2)
属性,然后从那里选择下拉项。
答案 1 :(得分:0)
我终于明白了(感谢所有输入)
@driver.find_elements(:css, "div.span1 > div.dropdown > a.dropdown-toggle")[-1].click