簡體   English   中英

如何在 Selenium Java 中創建不區分大小寫的 xpath

[英]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>

要創建不區分大小寫的 ,您可以使用以下解決方案:

"//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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM