有没有办法获得匹配元素f.e的索引。假设我有一个表并使用以下xpath表达式按内容查找元素:
//table/thead/tr/th[contains(.,'blah')]
我想知道匹配的'的索引。元素?即它是第一个细胞还是第二个细胞......或者...... nth。
答案 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
中使用适当的代码。如果有任何类型转换错误,请更正。我不是一个小家伙。