我在 XPath 下創建了,但它沒有按預期作業。
我正在檢查 html 表格的單元格中的文本,并且我希望匹配特定的單元格。
我在 XPath 下創建了但它不作業。
*//table[@id="customerPortalTable"]//tbody//tr[td[ contains(translate(text(), "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"), "{0}") ]]
{0}- 這是價值搜索的占位符
我想匹配以下值
測驗帳戶或測驗帳戶或測驗帳戶
<td class="left filterInputColumn">Test Account</td>
<td class="left filterInputColumn">Test ACCOUNT</td>
<td class="left filterInputColumn">TEST ACCOUNT</td>
uj5u.com熱心網友回復:
一般來說,您的 XPath 對我來說看起來不錯。也許問題與您搜索大寫還是小寫有關,例如這兩個都回傳三個 td 節點:
//td[contains(translate(text(), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 'TEST ACCOUNT')]
//td[contains(translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test account')]
uj5u.com熱心網友回復:
創建不區分大小寫路徑您可以使用以下解決方案:
"//table[@id="customerPortalTable"]//tbody//tr[.//td[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '{}')]]".format(placeholder)
實際上,您的代碼行將是:
placeholder= "Test Account"
WebElement element = driver.findElement(By.xpath("//table[@id="customerPortalTable"]//tbody//tr[.//td[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), '{}')]]".format(placeholder)));
參考
您可以在以下位置找到一些相關的詳細討論:
- 如何通過文本查找元素,忽略使用 Selenium 和 Xpath 的大小寫
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/457810.html
