如何在此 xpath c# selenium 中忽略区分大小写
How to ignore case sensitive in this xpath c# selenium
我有一个简单的 xpath:
driver.findelement(by.xpath("//li[contains(text(), 'chain')]").click()
此代码有效,但无法识别大写的 chain
,如何在此 xpath 中忽略区分大小写?
您可以像这样一起使用 contains
和 translate
函数:
//li[contains(translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'chain')]
使用 chain
的值,将其分配给单独的 string
变量,然后对其应用 .ToUpper()
扩展。
string strChain = "chain";
string getUpper = strChain.ToUpper();
它会给你大写的 cain
。
直接在driver.findelement
里面使用即可。
使用翻译,但为了使其更短,您可以只翻译您要查找的字符
//li[contains(translate(text(), 'CHAIN', 'chain'), 'chain')]
如果您要经常使用它,您甚至可以为此编写一个方法。我会写在Java(抱歉,不熟悉C#):
public static void main(String[] args) {
String l = "//li[" + containsTextIgnoringCase("Whosebug") + "]";
System.out.println(l);
}
public static String containsTextIgnoringCase(String s) {
return String.format("contains(translate(text(), '%s', '%s'), '%s')", s.toUpperCase(), s.toLowerCase(), s);
}
输出:
//li[contains(translate(text(), 'Whosebug', 'Whosebug'), 'Whosebug')]
有一些 space 优化(不确定是否需要付出努力,但仍然):仅翻译唯一字符,并处理引号,如果在字符串中传递
我有一个简单的 xpath:
driver.findelement(by.xpath("//li[contains(text(), 'chain')]").click()
此代码有效,但无法识别大写的 chain
,如何在此 xpath 中忽略区分大小写?
您可以像这样一起使用 contains
和 translate
函数:
//li[contains(translate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'chain')]
使用 chain
的值,将其分配给单独的 string
变量,然后对其应用 .ToUpper()
扩展。
string strChain = "chain";
string getUpper = strChain.ToUpper();
它会给你大写的 cain
。
直接在driver.findelement
里面使用即可。
使用翻译,但为了使其更短,您可以只翻译您要查找的字符
//li[contains(translate(text(), 'CHAIN', 'chain'), 'chain')]
如果您要经常使用它,您甚至可以为此编写一个方法。我会写在Java(抱歉,不熟悉C#):
public static void main(String[] args) {
String l = "//li[" + containsTextIgnoringCase("Whosebug") + "]";
System.out.println(l);
}
public static String containsTextIgnoringCase(String s) {
return String.format("contains(translate(text(), '%s', '%s'), '%s')", s.toUpperCase(), s.toLowerCase(), s);
}
输出:
//li[contains(translate(text(), 'Whosebug', 'Whosebug'), 'Whosebug')]
有一些 space 优化(不确定是否需要付出努力,但仍然):仅翻译唯一字符,并处理引号,如果在字符串中传递