Я пишу автоматизацию Webdriver для веб-приложения.У меня есть тест, который выглядит следующим образом:
it('has five items', async function(done) {
try {
await driver.wait(until.elementLocated(By.className('item-class')),5000);
const items = await driver.findElements(By.className('item-class'));
expect(items.length).toBe(5);
done();
}
catch(err) {
console.log(err)
}
}
Этот тест будет проходить около 2/3 времени, но иногда не будет с:
Expected 0 to be 5.
Я думаю, что тамне должно быть способа получить этот ответ, так как первая строка должна заставить его ждать, пока некоторые из этих элементов не существуют.Я мог понять результат «Ожидается, что 1 равняется 5.», в случае, если один элемент был добавлен на страницу, а остальная часть теста завершена до того, как все они были там, но достиг вызова ожидаемого () с 0 элементами.на странице не имеет смысла для меня.
Вопросы, таким образом:
1) Что я упускаю / не понимаю, так что этот результат на самом деле возможен?
2) Есть ли другая конструкция / метод, который я должен использовать, чтобы заставить его ждать, пока ожидаемые элементы появятся на странице?