Comment savoir si un texte existe sur la page
Si le texte existe, puis cliquez sur xyz
sinon cliquez sur abc
.
Je suis en utilisant le ci-dessous if
déclaration:
if(driver.findElement(By.xpath("/html/body/div[2]/div/div/div/div/div/div/table/tbody/tr[6]/td[2]")).isDisplayed())
{
driver.findElement(By.linkText("logout")).getAttribute("href");
} else {
driver.findElement(By.xpath("/html/body/div/div/div/a[2]")).click();
}
Script échoue avec le message d'erreur suivant:
Unable to locate element: {"method":"xpath","selector":"/html/body/div[2]/div/div/div/div/div/div/table/tbody/tr[6]/td[2]"}
- Fournir le code HTML s'il vous plaît.
Vous devez vous connecter pour publier un commentaire.
Essayez ce code:
Le code ci-dessous utilisée pour vérifier la présence dans le texte de la page web entière.
Si vous voulez vérifier le texte sur un site web particulier élément
Ici, nous pouvons utiliser d'essayer ,à l'exception de la fonction à l'aide de python web de chauffeur. voir ci-dessous le code
Vous avez besoin d'envelopper le "IsDisplayed" dans un try catch. "IsDisplayed" ne peut être appelée que si l'élément existe.
Vous souhaiterez peut-être modifier le Temps Implicites ainsi, sinon le try/catch va prendre du temps.
Tout d'abord, Xpath de ce type et
byLinkText
sont vraiment mauvais locators et échouent souvent. Les repères doivent être descriptif, unique, et peu de chances de changer. La priorité est à utiliser:Ensuite, vous pouvez utiliser
getText()
sur l'élément plutôt que sur l'ensemble de la page (getPageSource()
), qui est plus spécifique.try catch
est aussi une bonne pratique pourisDisplayed()
comme @Robbie a déclaré, ou mieux encore utiliser FluentWait pour trouver l'élément:Ensuite utiliser comme:
Essayer ce code ci-dessous:-