Obtenez de l'élément précis dans le webdriver contenant du texte
Quelles sont les bonnes façons de récupérer un élément précis dans le WebDriver/Selenium2 basée uniquement sur le texte à l'intérieur de l'élément?
<div class="page">
<ul id="list">
<li>Apple</li>
<li>Orange</li>
<li>Banana</li>
<li>Grape</li>
</ul>
</div>
Essentiellement, je voudrais écrire quelque chose comme cela pour récupérer l'élément spécifique:
@driver.find_element(:id, "list").find_element(:text, "Orange")
Ceci est très similaire à la façon dont je voudrais utiliser un sélecteur lors de la recherche de texte à l'intérieur d'un lien (c'est à dire :link_text
ou :partial_link_text
), mais je voudrais trouver des éléments de texte à l'intérieur de la normale, non-lien éléments.
Des suggestions? Comment abordez-vous cette question? (Dans le cas où vous vous le demandiez, je suis à l'aide de Ruby.)
OriginalL'auteur bbbco | 2012-03-20
Vous devez vous connecter pour publier un commentaire.
Quelques années de retard, mais j'étais en train de poser cette question et d'y répondre afin que d'autres puissent les trouver...
J'ai utilisé un sélecteur css pour obtenir tous les li-éléments et ensuite filtré le tableau basé sur le texte:
Vous pouvez ensuite
.click
ou.send_keys :return
pour sélectionner l'option.OriginalL'auteur erroric
Vous pouvez le faire avec xPath. Quelque chose comme ça pour votre exemple:
Ne savais pas qu'on pouvait chaîne
find_element
, je suis en supposant qu'elle ne recherche que les éléments enfants de l'élément premier... sympa. 😉Ouais, appelant find_element sur le pilote commence à la racine, tout en appelant sur un élément commence à partir de cet élément. Je pense que le XPath pourrait remplacer (donc si le". " n'était pas, au début de la XPath, il peut toujours commencer à partir de la racine du document comme dirigé par le //), mais je ne me souviens plus pour vous maintenant.
OriginalL'auteur Andy Tinkham