3 votes

Comment gérer la suppression d'un élément web du DOM avec Selenium Webdriver ?

J'essaie d'obtenir la valeur d'une étiquette dont le xpath est xpath=".//*[@id='msgIdmmrka']" sur la page d'ouverture de session d'un site Web. http://www.overstock.com . Mais cet élément web est supprimé du DOM après quelques secondes lorsque je n'entre pas d'adresse électronique, un mot de passe valide et que je clique sur le bouton "Sign In".

Je suis novice dans l'utilisation de Selenium Webdriver et je n'ai pas trouvé de solution pour gérer ce scénario ? Pouvez-vous m'aider ?

J'obtiens le message d'erreur d'exception suivant lorsque j'essaie de trouver cet élément web

Unable to locate element: {"method":"xpath","selector":".//*[@id='msgIdmmrka']"}
Command duration or timeout: 30.19 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
System info: host: 'Srinivasans-MacBook-Pro.local', ip: '192.168.0.101', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.5', java.version: '1.8.0_101'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, handlesAlerts=true, databaseEnabled=true, version=43.0.3, platform=MAC, nativeEvents=false, acceptSslCerts=true, webStorageEnabled=true, locationContextEnabled=true, browserName=firefox, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: 724463ca-6ab8-f246-acb4-6c8d955e066c
*** Element info: {Using=xpath, value=.//*[@id='msgIdmmrka']}

1voto

alecxe Points 50783

Attendez que l'élément de message soit visible après avoir soumis un formulaire :

WebDriverWait wait = new WebDriverWait(driver, timeOut);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".page-errors .message")));

El .page-errors .message Le sélecteur CSS correspondrait au message d'erreur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X