使用包含和小写的xpath的Selenium ChromeDriver

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用包含和小写的xpath的Selenium ChromeDriver相关的知识,希望对你有一定的参考价值。

我是selenium和xpath的新手,我正在尝试检查跨度是否包含某些文本,而忽略了这种情况。我试过引用解决方案herehere但没有成功。我有以下内容:

var driver = new ChromeDriver(DRIVER_LOCATION, options);
string name = "doe, john";
// xpath = "(//span[contains(lower-case(text()), lower-case('doe, john'))][contains(@class, 'token-label')])"
string xpath = $"(//span[contains(lower-case(text()), lower-case('{name}'))][contains(@class, 'token-label')])";
var element = driver.FindElement(By.XPath(xpath));

元素中的文本具有“Doe,John”,因此无法找到该元素。在xpath中使用包含selenium时忽略大小写的正确方法是什么?

答案

Chrome不支持小写关键字,您可以使用翻译关键字,如下所述

"//span//text()[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'"+ name + "')]". 

希望这可以帮助...

以上是关于使用包含和小写的xpath的Selenium ChromeDriver的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Selenium xpath 查找包含“下载”一词的所有元素?

Selenium XPath 合并跨越文本并查找包含子字符串的元素

如何使用 JUnit 断言元素包含 Selenium 中的文本

求 selenium By.xpath 包含变量 解决方案

在 Selenium 测试中使用 XPath 通过文本获取 WebElement

在selenium中使用xpath查找值大于文本的span