如何在xpath selenium和java中使用重音转义文本?

时间:2016-04-22 14:05:35

标签: selenium xpath selenium-webdriver automation selenium-ide

例如: 我有一个text = "Non Spécifié",我需要转义重音以匹配xpathlocator相关的page

option = By.xpath("//div[./input[contains(@name, text )]]");

返回error,因为与xpath不匹配。

UI中的

显示为非Spécifié:enter image description here

可能是什么解决方案?

2 个答案:

答案 0 :(得分:0)

嗨,请尝试如下,它会工作 使用 java.text.Normalizer

// your accent string 
String text = "Non Spécifié";
System.out.println("Earlier value : "+text);

// after using Normalizer
String string = Normalizer.normalize(text, Normalizer.Form.NFD);
// now compare each character against a letter.
String normalString  = string.replaceAll("[^\\p{ASCII}]", "");
System.out.println("Accent changed to normal string : "+ normalString);

// note If your text is in unicode.use like below 
// String normalString = string.replaceAll("\\p{M}", "");

// now you can use above in your xpath like below 
option = By.xpath("//div[./input[contains(@name, normalString )]]");

希望这可以帮助你

答案 1 :(得分:0)

检查出来:

//*[contains(translate(@name,'áàâäéèêëíìîïóòôöúùûü','aaaaeeeeiiiioooouuuu'),'Non Specifie')]

使用内置xpath函数的主要思想。理论上它应该足够了。

祝你好运。