[英]How to create case insensitive xpath in Selenium Java
我在 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>
要創建不區分大小寫的xpath ,您可以使用以下解決方案:
"//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)));
您可以在以下位置找到一些相關的詳細討論:
一般來說,你的 XPath 對我來說沒問題。 也許問題與您搜索大寫字母還是小寫字母有關,例如這兩個都返回三個 td 節點:
//td[contains(translate(text(), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 'TEST ACCOUNT')]
//td[contains(translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'test account')]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.