0
votes

Comment accéder au deuxième élément qui a le même nom de classe

Lorsque vous essayez d'automatiser notre application, il y a deux boutons avec le même nom.

Je ne suis pas capable de trouver un moyen de les reconnaître. S'il vous plaît laissez-moi savoir ce qui pourrait être les moyens d'identifier ces éléments dans Selenium WebDiver en Java


1 commentaires

Avez-vous un contrôle sur le code source de l'application sous test? Sinon, pouvez-vous partager plus d'informations sur les boutons? Spécifiquement le HTML résultant pour chacun?


3 Réponses :


1
votes

Vous pouvez utiliser le tableau tout en construisant XPath pour l'élément. S'il y a deux éléments de deux boutons avec le même nom de classe sur l'interface utilisateur. par exemple. .//* [@ class = 'xyz']

Donc, si au-dessus de XPATH identifie deux éléments, vous pouvez d'abord localiser avec ( .//* [@ class = 'xyz'] ) [1] et deuxième avec ( ./ / * [@ class = 'xyz'] ) [2]

laissez-moi savoir si cela résout votre requête.


0 commentaires

2
votes

Utilisez soit le xpath ou le CSS (préféré) pour localiser le bouton requis comme ci-dessous.

Considérons l'échantillon ci-dessous. P>

P>

(//button[@class='same_class'])[2]


1 commentaires

Excellents exemples



0
votes

en supposant que vous avez 2 Tags défini comme suit dans DOM:

<button name="foo">foo</button>
<button name="foo">foo</button>
  • 1er bouton: // bouton [@ nom = 'foo' et position () = 1] code> li>
  • 2nd bouton: // bouton [@ nom = 'foo' et position () = 2] code> li> li> ul>

    L'avantage de l'utilisation de Position () Code> La fonction est que le navigateur cesse de rechercher des correspondances supplémentaires afin de rechercher tous les boutons et de les filtrer à celui requis, il trouvera le bouton avec le bouton. Compte tenu de position et arrêtez de réduire le temps d'exécution et les besoins en ressources. P>

    Plus d'informations: Opérateurs XPath & Fonctions p> p>


0 commentaires