找到按钮的所有XPath并选择最后一个?

时间:2015-10-29 16:14:39

标签: ruby xpath cucumber capybara

我有一个包含四列和不断增加的行数的表。每次测试时,我都需要在最后一行应用测试,我不知道它的XPath,因为当我第一次编写测试时它不存在。

我需要的XPath就像:

//*[@id="example"]/div/table/tbody/tr[X]/td[4]/a[1]

变量X

有没有办法废弃X值并选择最大值,或类似的东西?

2 个答案:

答案 0 :(得分:2)

最简单的解决方案可能是

all(:xpath, '//*[@id="example"]/div/table/tbody/tr/td[4]/a[1]', minimum: 1).last

all('#example div table tr td:nth-of-type(4) a:first-of-type', minimum: 1).last

注意:minimum: 1强制#all使用Capybaras等待行为等待至少1个匹配元素,例如#find通常

答案 1 :(得分:1)

您可以使用:

//*[@id="example"]/div/table/tbody/tr[last()]/td[4]/a[1]

这将根据需要从最后一个表行的第四个td元素中选择第一个锚标记。