Lorsque vous essayez d'automatiser notre application, deux boutons portent le même nom.
Je ne suis pas capable de trouver un moyen de les reconnaître. Faites-moi savoir ce qui pourrait être d'autres moyens d'identifier ces éléments dans Selenium WebDriver en Java
Vous pouvez utiliser l'option d'indexation xpath.
By.xpath("(//input[@name='Button'])[2]")
Vous pouvez toujours utiliser xpath s'il n'y a pas d'unicité avec attribut. Par exemple si vous voulez trouver un élément qui a le texte foo
et le nom button
, je préférerai alors xpath comme ci-dessous si name n'est pas unique:
//*[@name='button' and text()='foo']
Ou pour une classe différente mais le même nom
//button[@name='button' and @class='xyz']
ou Pour un texte différent mais le même nom
//input[@name='button' and contains(text(),'Click Here')]
ou pour des tags différents mais le même nom
//button[@name='button']
//input[@name='button']
Il suffit d’aller avec une propriété unique et de créer un xpath personnalisé.
J'espère que vous pourrez également utiliser le script Java pour cela également, par exemple.
WebElement butttonToClick = driver.findElement(By.name("button"));
((JavascriptExecutor)driver).executeScript("arguments[1].click();",butttonToClick );
Où arguments[1]
désigne le deuxième élément ayant le même nom.
Vous pouvez utiliser des méthodes xpath comme suit-freres/frères précédents.
Par exemple, si le bouton est situé sur un élément Web unique, essayez d’identifier celui-ci en premier et en utilisant différentes méthodes xpath, telles que le contenu suivant, le contenu, les frères précédents, vous pouvez accéder à l'élément Web.