例如:
我有一个text = "Non Spécifié"
,我需要转义重音以匹配xpath
与locator
相关的page
option = By.xpath("//div[./input[contains(@name, text )]]");
返回error
,因为与xpath
不匹配。
显示为非Spécifié:enter image description here
可能是什么解决方案?
答案 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函数的主要思想。理论上它应该足够了。
祝你好运。