1

Zum Beispiel: eine error Ich habe einen text = "Non Spécifié" und ich brauche die Akzente zu entkommen die xpath mit locator im pageWie entkommen Text mit Akzent in XPath Selen und Java?

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

Kosten im Zusammenhang mit übereinstimmen, da nicht die xpath entsprechen.

in UI wird als Non specifie angezeigt: enter image description here

Was die Lösung sein könnte?

+0

Können Sie das HTML-Snippet anhängen? Mayve du willst enthält (text(), text) statt contains (@name, text)? – DMart

Antwort

0

hallo bitte versuchen Sie es wie unten, damit er java.text.Normalizer Verwendung

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

Hoffnung, dies hilft Ihnen

+0

kehrt fehlgeschlagen: Früher Wert: Nicht specifie , Akzent auf normale Zeichenfolge geändert: Nicht SpAcifiA //div[./input[contains(@name, 'non spacifia')]] Ich habe versucht, die folgende Text und funktioniert in Xpath, aber ich kann nicht Text Hard-Code verwenden: if (text.contains ("Non Sp")) { text = "Non Sp \ u00E9cifi \ u00E9"; System.out.println ("Textwert" + Text); } –

0

Check this out funktioniert:

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

Die Hauptidee Verwendung der eingebauten XPath-Funktion In der Theorie sollte es genug sein.

Viel Glück.