找回匹配元素的索引?

时间:2017-03-03 17:46:23

标签: selenium xpath

有没有办法获得匹配元素f.e的索引。假设我有一个表并使用以下xpath表达式按内容查找元素:

 //table/thead/tr/th[contains(.,'blah')]

我想知道匹配的'的索引。元素?即它是第一个细胞还是第二个细胞......或者...... nth。

2 个答案:

答案 0 :(得分:2)

您可以尝试实现以下代码(Python示例):

all_elements = driver.find_elements_by_xpath('//table/thead/tr/th')
target_element = driver.find_element_by_xpath('//table/thead/tr/th[contains(.,"blah")]')
print(all_elements.index(target_element))

Python list具有内置方法index(),允许获取列表中元素的索引。如果您需要另一种编程语言的解决方案,请告诉我

答案 1 :(得分:0)

我在ruby中使用了相同的功能。但是在Java中你可以在Java中尝试这样的事情:

String path = driver.findElement(By.xpath("//th[contains(.,'blah')]")).toString();
String lastElement = path.substring(path.lastIndexOf('/') + 1);

要使用th中的以下代码来计算ruby我的身份:

int columnNo = lastElement .match(/(?<=\[).+?(?=\])/).to_s.to_i

您可以在java中使用适当的代码。如果有任何类型转换错误,请更正。我不是一个小家伙。