如何在 Selenium 中创建不区分大小写的 xpath Java
How to create case insensitive xpath in Selenium Java
我已经在 XPath 下创建,但它没有按预期工作。
我正在检查 html table 的单元格中的文本,我希望匹配特定的单元格。
我已经在 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')]
我已经在 XPath 下创建,但它没有按预期工作。
我正在检查 html table 的单元格中的文本,我希望匹配特定的单元格。
我已经在 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')]