1
我HTML與此類似:如何編寫更好的xpath表達式?
<tr>
<td>
<span>
<span class = "x28w"></span>
</span>
<td>
<span>
<a>
<span>3899393</span>
</a>
</span>
</td>
</tr>
<tr>
<td>
<span>
</span>
<td>
<span>
<a>
<span>3899394</span>
</a>
</span>
</td>
</tr>
所以基本上第一跨度爲空,但會顯示一個圖標,如果它下面的子跨度"x28w"
類。第二個(即3899393
)是一個案例編號。
我想用Java編寫一個硒方法List<String>getCasesWithAlert()
。
我可以做一個findElements(By.xpath("//tr"))
,遍歷元素,檢查當前tr是否有td/span/span[contains(@class,'x28w')]
。
如果存在,則找到該行,找到子元素td,獲取第二個元素並找到元素a/span,然後獲取文本。但是這有點複雜。
是否有某種xpath表達式我可以使用(如下面的兄弟或其他)來查找包含警報圖標(類x28w)在一個表達式中的情況?
感謝。這實際上是內部更多的HTML,所以而不是tr它是 // div [包含(@ id,'t1 :: db')或包含(@ id,'t2 :: db')]/table [1]/tbody [1]/tr「,但我認爲我可以推斷出你的路徑,對嗎? – user3257891
@ user3257891是的,這個想法保持不變,我使用了你提供的用於測試的HTML - 爲我工作。你真正的HTML代碼是,如果你在應用該解決方案時遇到困難,謝謝。 – alecxe
如何得到反函數?那些沒有x28w的函數?那麼就沒有第二個x28w了。包含...因爲不會有內部跨度。 – user3257891