7
votes

WebDriverwait ou implicitementwait ou explicite rien ne fonctionne

J'utilise des tests SELENIUM 2 (écrit en C #) qui choisissent des valeurs à partir d'un contrôle "SELECT". La sélection provoque un post-retour sur le serveur, qui met à jour l'état de la page. J'effectue donc une attente manuelle ( thread.sleep ) après avoir choisi une valeur pour attendre que la page soit modifiée. Et cela fonctionne bien avec le fil.sleep. Toutefois, thread.sleep est une mauvaise idée à utiliser avec le nombre de bonnes raisons pour que je sorte tout mon thread.sleep ligne de code puis tous mes cas de test tombent en morceaux Et j'ai essayé webdiverwait, implicitement et explicitement aucun travaille et très frustration

ci-dessous est le code de l'échantillon que j'ai essayé ....

// webDriverwait xxx

essayé aussi: xxx

// implicitement: xxx

// attente explicite: xxx


0 commentaires

3 Réponses :


0
votes

Essayez d'utiliser

new WebDriverWait(driver, 30).until(ExpectedConditions.presenseOfElementLocated(byLocator));


0 commentaires

1
votes

Voici ce qui fonctionne pour moi -> xxx

vous pouvez également faire par identifiant -> xxx

sans voir plus de votre code, il sera difficile de déterminer pourquoi cela ne fonctionne pas.


1 commentaires

laissez-moi savoir quel plus de code vous voulez pour que je puisse la coller, et laissez-moi essayer



0
votes

Je trouve une solution avec Stackoverflow :) et cela fonctionne:

click on partialLinkText("Exit")
remote.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS)
remote.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS)
// Thread.sleep(7000) // for js-work
(new WebDriverWait(remote, 245)).until(presenceOfElementLocated(By.partialLinkText("""Entry for > technician""")))
// Thread.sleep(3000) // for js-works


0 commentaires