7
votes

Sélénium: Comment trouver div avec un contenu spécifique?

J'ai besoin de trouver un

code> avec certains contenus et cliquez sur CODE> it de sélénium, comme ça:
<tr>
  <td>clickAndWait</td>
  <td>//div[@class='gwt-Label' ***WITH CONTENT='Logout'***]</td>
  <td>5000</td>
</tr>


0 commentaires

3 Réponses :


7
votes

Essayez ceci:

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


5 commentaires

Cela semble super, mais je ne peux pas le faire fonctionner. Recherché une documentation, mais n'a trouvé aucun; avez vous un lien?


Oh. Vous devez laisser tomber les citations simples autour de ".". Édité


Ah, c'est XPath, n'avait pas compris cela. N'est toujours pas ne fonctionne, mais j'espère que je serai en mesure de le réparer maintenant. Merci!


Le sélénium identifie le localisateur, trouve le div, mais le clic ne passe jamais à travers! Des idées?


Êtes-vous sûr que la div est la cible appropriée du clic? La façon dont je me souviens de GWT, il y a beaucoup de couches



8
votes

Vous pouvez également utiliser des localisateurs CSS:

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


2 commentaires

Le sélénium identifie le localisateur, trouve le div, mais le clic ne passe jamais à travers! Des idées?


Il se peut que la div ne soit l'élément qui répond au clic. Y a-t-il un élément parent / enfant qui pourrait être plus approprié? Il existe également parfois des problèmes avec Cliquez sur et vous pouvez essayer le MouseDown , MouseUp commandes à la place.



1
votes

Peut-être que votre xpath ne fait pas tout à fait ce que vous pensez. Vous devrez peut-être utiliser la fonction String () pour concaténer tout le texte d'un bloc.

Par exemple, dans Testplan (en utilisant le backend), vous feriez quelque chose comme ceci: P>

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


0 commentaires