2017-12-19 6 views
0

enthalten Ich habe folgende Tabellenzeile. Ich kann th mit XPath nicht identifizieren.Selenium webdriver Kann Elemente mit xpath nicht identifizieren, die  

<tr> 
<th>My&nbsp;Home</th> 
<th>My&nbsp;School</th> 
<th>Home</th> 
</tr> 

Ich habe versucht:

mydriver.findElement(By.xpath("//tr/th[text()='My Home']")); 
mydriver.findElement(By.xpath("//tr/th[text()='My\u00a0Home']")); 
mydriver.findElement(By.xpath("//tr/th[text()='My${nbsp}Home']")); 

Ich habe auch() innerhalb von XPath versucht enthält.

+1

Sie ändern Ihre Frage jede Minute, wie können Sie erwarten, dass jemand Ihre Frage beantwortet? – DebanjanB

Antwort

0

Um th mit Text als My&nbsp;Home zu identifizieren Sie eine der folgenden versuchen:

mydriver.findElement(By.xpath("//tr/th[contains(.,'Home')]")); 

Hinweis

mydriver.findElement(By.xpath("//tr/th[contains(text(),'Home')]")); 

OR

: In Java es ist xpath nicht Xpath

+0

Ich habe das versucht, funktioniert aber nicht für mich. –

1

Sie unter Abhilfe

//th[starts-with(text(), "My") and substring(text(), 4)="Home"] 

versuchen können, aber beachten Sie, dass es Ihnen nur erlaubt &nbsp; Identifizierung

Wenn Sie nicht vertraut mit dieser Syntax zu überspringen, bedeutet dies th Knoten mit Text, der mit Teilzeichenfolge beginnt "My" und ab dem 4. Zeichen der Text ist gleich "Home"

1

I here eine sehr ähnliche Frage wie diese

TLDR beantwortet haben;

mydriver.findElement(By.xpath("//tr/th[translate(text(),'\u00A0', ' ')='My Home']")); 

Dies ersetzt die geschützten Leerzeichen (&nbsp;) mit einem realen Raum und paßt die Saite gegen das Ergebnis.

Verwandte Themen