1

xpathと一致していないので、私はtext = "Non Spécifié"を持っていると私はpagexpath seleniumとjavaのアクセント付きエスケープテキストはどのようにして表示されますか?たとえば

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

に関連locatorxpathに一致するようにアクセントをエスケープ必要 はerrorを返します。 UIで

は非Spécifiéとして表示されます。enter image description here

ソリューション何ができますか?

+0

HTMLスニペットを添付できますか? contains(@name、text)ではなくcontains(text()、text)を使用したいと思うかもしれませんか? – DMart

答えて

0

やあ、これはあなたにこのうち

+0

リターンが失敗しました: 以前の値:非Spécifié を、アクセントは通常の文字列に変更:非SpAcifiA //div[./input[contains(@name、 '非spacifia')]] を私は次のことを試してみましたテキストとxpathで動作しますが、テキストハードコードは使用できません: if(text.contains( "Non Sp")){ text = "Non Sp \ u00E9cifi \ u00E9"; System.out.println( "テキスト値" +テキスト); } –

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)]]"); 

使用を動作します下の希望のようにしてみてください。

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

主なアイデアを組み込みのxpath関数を使用する。理論的にはそれで十分でしょう。

幸運。

関連する問題