有沒有辦法獲得匹配元素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