Les meilleures pratiques à attendre un changement avec Selenium Webdriver?
Après un événement click-je attendre pour un attribut d'éléments à changer avant d'aller plus loin (cliquez sur l'événement à l'origine de certains éléments de sortir de la focalisation et de certains autres s'focus via un JS)
Après avoir passé du temps à chercher une alternative fiable à la "waitForAttribute" (sélénium 1 commande) dans webdriver... je pourrais obtenir le code ci-dessous fonctionne. Mais je ne suis pas sûr si c'est la meilleure mise en œuvre....
Tout une meilleure solution??
wait = new WebDriverWait(wedriver1, TimeSpan.FromSeconds(5));
.....
button.Click();
wait.Until(webdriver1 => webdriver2.webelement.GetAttribute("style").Contains("display: block"));
Aussi, quelqu'un peut s'il vous plaît partager un lien vers comment je peux gérer AJAX modification d'un événement à l'aide de webdriver.
assertselenium.com/2013/01/29/webdriver-wait-commands a une belle liste de possibles méthodes d'attente et comment ils se rapportent
l'assertselenium.com site semble avoir disparu.
Les versions archivées de la page: web.archive.org/web*/assertselenium.com/2013/01/29/webdriver-wait-commands
l'assertselenium.com site semble avoir disparu.
Les versions archivées de la page: web.archive.org/web*/assertselenium.com/2013/01/29/webdriver-wait-commands
OriginalL'auteur Kir | 2012-05-03
Vous devez vous connecter pour publier un commentaire.
C'est un problème récurrent de Sélénium.
Je ne suis pas sûr au sujet d'un "meilleur" de la mise en œuvre existants. Je crois que c'est en grande partie en fonction de la situation.
Concernant AJAX axés sur les changements, je voudrais généralement utiliser un waitForElementPresent ou un waitForElementNotPresent selon les modifications de l'appel AJAX sur la page.
OriginalL'auteur Silver Quettier
Vous pouvez utiliser implicite WebDriver attendre :
Implicite de l'attendre, c'est à dire WebDriver pour interroger les DOM pour une certaine quantité de temps à essayer de trouver un élément ou d'éléments si elles ne sont pas immédiatement disponibles.
Plus ici: http://seleniumhq.org/docs/04_webdriver_advanced.html#implicit-waits
OriginalL'auteur Manpreet Singh
Je suggère d'utiliser
org.openqa.selenium.support.ui.ExpectedConditions.attributeToBe(WebElement element, String attribute, String value)
.par exemple
(docs)
OriginalL'auteur jersey-city-ninja
Je sens que l'utilisation de la WebDriverWait est assez utile. Un changement que vous pouvez faire dans votre code à utiliser -
au lieu d'obtenir l'attribut style.
OriginalL'auteur Hari Reddy
Vous pouvez utiliser Thread.dormir comme les gens ont mis en œuvre ici..Vous pouvez utiliser leurs implémentations se rapportant à votre problème.
Je pense que vous pourriez mettre en place quelque chose comme ça. Je n'ai pas vérifié, mais vous obtenez l'idée.
while(timeout<10)
et supprimerif
déclaration. Juste une remarque à votre code.OriginalL'auteur John