有没有办法获得匹配元素f.e的索引。让说我有一个表,请使用以下XPath表达式的内容找到元素:获取匹配元素的索引?
//table/thead/tr/th[contains(.,'blah')]
我想知道匹配的“日”元素的索引?即它是第一个细胞还是第二个细胞或..第n个细胞。
有没有办法获得匹配元素f.e的索引。让说我有一个表,请使用以下XPath表达式的内容找到元素:获取匹配元素的索引?
//table/thead/tr/th[contains(.,'blah')]
我想知道匹配的“日”元素的索引?即它是第一个细胞还是第二个细胞或..第n个细胞。
你可以尝试实现下面的代码(例如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()
允许获得元素的索引列表中。让我知道你是否需要另一种编程语言的解决方案
我在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
使用适当的代码。如有任何类型错误,请纠正。我不是一个java的家伙。
谢谢,会试试看。我用java来做,但没有必要举例说明我的观点。我也想知道是否有办法纯粹在xpath中,但即使如此,我没有看到我怎么可以得到整数。 .findElement()返回webElement不是整数。 – user1019129
哦,我明白了......你可以尝试计算一些前面的元素:'count(// table/thead/tr/th [contains(。,“blah”)]/before-sibling :: th)' 。这是纯粹的'XPath'语法 – Andersson