Я написал код Selenium (в Javascript) для автоматической прокрутки списка вниз с помощью клавиши «Вниз» на клавиатуре. Я знаю, что вы можете легче прокручивать с помощью команды Javascript, но я хочу сделать это с помощью клавиши «Вниз».
Пока это мой код:
let list = await this.driver.wait(until.elementLocated(By.css('#scrollableList')), 2000);
// the list is not scrolled in the beginning:
let scrolledY = await this.driver.executeScript('return arguments[0].scrollTop;', list);
await assert.deepEqual(scrolledY, 0);
// clicking on the list and pressing the "Down"-Key multiple times to scroll down
await this.driver.actions({
bridge: true
}).click(list).perform();
await this.driver.actions({
bridge: true
}).keyDown(Key.DOWN).keyUp(Key.DOWN).keyDown(Key.DOWN).keyUp(Key.DOWN).keyDown(Key.DOWN).keyUp(Key.DOWN).perform();
// This is what I need so that the following assert return true:
await sleep(100);
// check if it is successfully scrolled down:
scrolledY = await this.driver.executeScript('return arguments[0].scrollTop;', list);
await assert.ok(scrolledY > 0);
Моя проблема:Он успешно прокручивается вниз (когда я оставляю программу в спящем режиме в течение 10 секунд, я ясно вижу это). Но мне нужна строка await sleep(100);
, чтобы подождать пару миллисекунд. В противном случае последнее утверждение возвращает, что это не сработало. Почему это так и как я могу заставить его работать без команды sleep?