J'essaie de créer des tests de sélénium qui exécutent chaque étape de manière synchrone, sans utiliser .then() ou async/await. La raison en est que je veux créer un ensemble de fonctions qui permettent à peu près n'importe qui dans notre équipe de test, presque indépendamment des compétences techniques pour écrire des tests automatisés faciles à lire. Il me semble que webdriver-sync devrait me donner exactement ce que je veux. Cependant, le code suivant est fictif des problèmes de production:webdriver-sync fonctionnant de manière asynchrone?
var wd = require('webdriver-sync');
var By = wd.By;
var Chromedriver = wd.Chromedriver;
var driver = new Chromedriver;
driver.get('https://my.test.url');
var myButton = driver.findElement(By.cssSelector('[id*=CLICK_ME]'));
myButton.click();
Il essaie d'exécuter - navigateur est lancé et la page commence à charger ... mais les étapes ne sont pas exécutées de manière synchrone - il passe et essaie de trouver et cliquez sur "myButton" avant que la page a fini de charger, en jetant une erreur "no such element" ... ce qui me fait un peu défaire le point de webdriver-sync?! Quelqu'un peut-il me dire où je vais mal?
FWIW, je WebDriver-synchronisation 1.0.0, noeud v7.10.0, java 1.8.0_74, tous en cours d'exécution sur CentOS 7.
Merci à l'avance!
Avez-vous la même erreur avec le pilote firefox? –
Vraiment besoin de ce travail avec Chrome, mais néanmoins j'ai juste essayé de passer à FF. En utilisant les instructions sur github.com/jsdevel/webdriver-sync pour instancier le pilote FF, j'obtiens: "Le chemin vers le pilote exécutable doit être défini par la propriété système webdriver.gecko.driver" - mais je ne vois pas comment définir cela avec node.js? – r51
la seule fois que j'ai utilisé webdriver selenium avec nodejs j'ai utilisé webdriver.io et cela a bien fonctionné. –