/ / webdriver-sync działa asynchronicznie? - node.js, selenium, selenium-webdriver, synchroniczny

webdriver-sync działa asynchronicznie? - node.js, selenium, selen-webdriver, synchroniczne

Próbuję stworzyć testy selenu, które będą uruchamiać każdy z nichkrok synchronicznie, bez użycia .then () lub async / czekaj. Powodem tego jest to, że chcę stworzyć zestaw funkcji, które pozwolą praktycznie każdemu naszemu zespołowi testowemu, prawie niezależnie od umiejętności technicznych, napisać łatwe do odczytania testy automatyczne. Wydaje mi się, że webdriver-sync powinien dać mi dokładnie to, czego chcę. Jednak następujący fałszywy kod powoduje problemy:

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

Próbuje się uruchomić - uruchomiona jest przeglądarka i stronazaczyna się ładować ... ale kroki nie są wykonywane synchronicznie - ciągnie się i próbuje znaleźć i kliknąć „myButton” przed zakończeniem ładowania strony, zgłaszając błąd „brak takiego elementu” ... co w pewnym sensie pokonuje punkt synchronizacji webdriver ?! Czy ktoś może mi powiedzieć, gdzie popełniam błąd?

FWIW, mam webdriver-sync 1.0.0, węzeł v7.10.0, java 1.8.0_74, wszystkie działające na CentOS 7.

Z góry dziękuję!

Odpowiedzi:

1 dla odpowiedzi № 1

Musisz wstawić cudzysłowy wokół „CLICK_ME”, ponieważ jest to wartość ciągu.

Zasadniczo jednak warto poczekać na określone elementy, ponieważ strony dynamiczne są często „gotowe”, zanim wszystkie ich elementy zostaną utworzone.