Ruby/Selenium:如何单击页面上多次出现且没有唯一属性的特定项目

Ruby/Selenium:如何单击页面上多次出现且没有唯一属性的特定项目,ruby,angularjs,selenium,Ruby,Angularjs,Selenium,这里有一个问题——特别是小插入符号: 正如您所看到的,在同一个页面中有多个,它们都具有相同的类等 我尝试了几种不同的路线,但我未能成功点击该项目 我总是想点击页面上的最后一个,它们的数量是动态的,所以有时候是第二个,有时候是第六个,所以用一个特定的数字来引用它是不起作用的 感谢您的帮助,我的测试是用ruby编写的,使用selenium和testunit。页面本身是用html5编写的,使用Angular 以下是我尝试过的一些方法,以及这些方法的一些变体 @driver.find_element(:

这里有一个问题——特别是小插入符号:

正如您所看到的,在同一个页面中有多个,它们都具有相同的类等

我尝试了几种不同的路线,但我未能成功点击该项目

我总是想点击页面上的最后一个,它们的数量是动态的,所以有时候是第二个,有时候是第六个,所以用一个特定的数字来引用它是不起作用的

感谢您的帮助,我的测试是用ruby编写的,使用selenium和testunit。页面本身是用html5编写的,使用Angular

以下是我尝试过的一些方法,以及这些方法的一些变体

@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

尝试在绿色div上使用nth-last-child2属性,然后从中选择下拉项。

感谢所有的输入,我终于找到了它

@driver.find_elements(:css, "div.span1 > div.dropdown > a.dropdown-toggle")[-1].click

像这样@driver.find_元素:css,span1:nth-last-child2。单击它会在我身上超时没有这样的元素没有。不是最后一秒的“span1”元素。但搜索最后一个绿色分区,然后在那里选择“span1”元素。列表元素周围的绿色包装的类别是什么?它似乎分为几个:部分是“span1”,如图所示:但这部分似乎是“span11”,整个元素上的包装是ng scope:@driver.find_element:css,筛选器列表项:第n个最后一个孩子2