/ / webdriver-sync працює асинхронно? - node.js, селен, селен-веб-драйвер, синхронний

webdriver-sync працює асинхронно? - node.js, селен, селен-webdriver, синхронний

Я намагаюся створити тести на селен, які запускають коженкрок синхронно, без використання .then () або async / await. Причиною цього є те, що я хочу створити набір функцій, які дозволять майже будь-кому з нашої команди випробувачів, майже незалежно від технічних навичок, писати автоматичні тести, які легко читати. Мені здається, веб-драйвер-синхронізація повинен дати мені саме те, що я хочу. Однак такий фіктивний код створює проблеми:

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

Він намагається запустити - браузер запускається і сторінкапочинає завантажуватися ... але кроки виконуються не синхронно - він продовжує і намагається знайти та натиснути кнопку «myButton» до того, як сторінка закінчиться завантажуватись, викинувши помилку «немає такого елемента» ... яка, як мені здається, перемагає точка веб-драйвер-синхронізації ?! Хтось може сказати мені, де я помиляюся?

FWIW, у мене є webdriver-sync 1.0.0, вузол v7.10.0, java 1.8.0_74, все працює на CentOS 7.

Спасибі заздалегідь!

Відповіді:

1 для відповіді № 1

Вам потрібно поставити подвійні лапки навколо "CLICK_ME", оскільки це строкове значення.

Як правило, однак, бажано зачекати на певні елементи, оскільки динамічні сторінки часто "готові" до того, як будуть створені всі їх елементи.