2016-07-29 14 views
0

Ich möchte einen Xpath verwenden, um ein HTML-Element zu finden, das weder eine Eingabe noch eine TextArea sein kann. Der HTML-Code sieht wie folgt aus:Verwenden des ODER in XPATH

<div> 
<label>Login</label> 
<div> 
<div> 
<input/> 
</div> 
</div> 
</div> 

Oder wie folgt aus:

<div> 
<label>Full name</label> 
<div> 
<div> 
<textarea></textarea> 
</div> 
</div> 
</div> 

Um die Eingabe oder das Textfeld zu orten ich dieses XPath wich gemacht habe funktioniert:

//div[contains(label,'Login')]//input 

oder dieses:

//div[contains(label,'Full name')]//textarea 

Die Sache, was Text dort auf dem Etikett ist i ein Textfeld oder ein Eingabeelement aufweisen kann, so die Eingabe oder die teaxtarea ich so etwas wie dies tun will suchen:

//div[contains(label,'Login')]//input|//div[contains(label,'Login')]//textarea 

Wo die | Stellen Sie das OR dar, aber es funktioniert nicht. Wie soll ich es machen?

Antwort

2

Der | Betreiber ist der Vereinigung Operator, nicht OR, aber es sollte Arbeit für das, was Sie zu tun versuchen.

Folgendes sollte auch funktionieren, so wenden Sie sich bitte versuchen Sie dies:

//div[contains(label,'Login')]//*[self::input or self::textarea]