2010-02-02 3 views
6

Ich brauche ein <div> mit bestimmten Inhalten und click es von Selen zu finden, wie es so:Selen: Wie findet man div mit spezifischem Inhalt?

 
<tr> 
    <td>clickAndWait</td> 
    <td>//div[@class='gwt-Label' ***WITH CONTENT='Logout'***]</td> 
    <td>5000</td> 
</tr> 

Gibt es eine Möglichkeit, dies zu tun? Ich möchte keinen absoluten XPath verwenden.

Antwort

7

versuchen Sie dies:

//div[@class='gwt-Label' and contains(., 'Logout')] 
+0

große Töne, aber ich kann es nicht bekommen Arbeit. Nach Dokumentation gesucht, aber keine gefunden; Hast du einen Link? –

+0

http://www.w3.org/TR/xpath/#function-contains – krosenvold

+0

Oh. Sie müssen die einfachen Anführungszeichen um '.' Bearbeitet – krosenvold

8

Sie könnten auch CSS Locators verwenden:

<div class="gwt-Label">This FindMe DIV</div> 

konnte mit befinden:

css=.gwt-Label:contains('FindMe') 
+0

Selen identifiziert den Locator, findet das div, aber der Klick kommt nie durch! Irgendwelche Ideen? –

+0

Es könnte sein, dass das DIV nicht das Element ist, das auf den Klick reagiert. Gibt es ein Eltern/Kind-Element, das geeigneter sein könnte? Es gibt manchmal Probleme mit 'click' und Sie könnten stattdessen die' mouseDown', 'mouseUp' Befehle verwenden. –

1

Vielleicht ist Ihr XPath ist nur nicht ganz das, was du denkst. Möglicherweise müssen Sie die Funktion string() verwenden, um den gesamten Text in einem Block zu verketten.

Zum Beispiel in Testplan (mit Selen als Backend) Sie würde so etwas tun:

Click //div[@class='gwt-Label'][contains(string(),'Logout')] 

Beachten Sie die Verwendung von string()

Verwandte Themen