/ / webdriver-sync in esecuzione in modo asincrono? - node.js, selenio, selenio-webdriver, sincrono

webdriver-sync in esecuzione in modo asincrono? - node.js, selenio, selenio-webdriver, sincrono

Sto cercando di creare test di selenio che eseguano ciascunopasso in sincrono, senza usare .then (), o async / await. La ragione di questo è che voglio creare un set di funzioni che consenta praticamente a chiunque nel nostro team di test, quasi a prescindere dalle competenze tecniche per scrivere test automatizzati di facile lettura. Mi sembra che la sincronizzazione con il webdriver dovrebbe darmi esattamente quello che voglio. Tuttavia, il seguente codice fittizio sta producendo problemi:

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();

Prova a funzionare: il browser viene avviato e la paginainizia a caricare ... ma i passaggi non vengono eseguiti in modo sincrono - continua e cerca di trovare e fare clic su "myButton" prima che la pagina abbia finito di caricare, lanciando un errore "no such element" ... che per me blocca un po 'il punto di sincronizzazione del webdriver ?! Qualcuno può dirmi dove sto andando male?

FWIW, ho webdriver-sync 1.0.0, nodo v7.10.0, java 1.8.0_74, tutto in esecuzione su CentOS 7.

Grazie in anticipo!

risposte:

1 per risposta № 1

Devi inserire virgolette su "CLICK_ME" perché è un valore stringa.

In generale, tuttavia, è una buona idea aspettare elementi specifici perché le pagine dinamiche sono spesso "pronte" prima che tutti i loro elementi siano stati creati.