TestCafe - Ошибка в fixture.beforeEach hook

Я провожу тестирование e2e с Testcafe для приложения. Для одного из моих приборов я использую beforeEach. Мой селектор ожидает появления элемента, прежде чем щелкнуть по нему на странице. Иногда этот тест проходит успешно, а иногда - нет. Это очень непоследовательно.

Код:

fixture`Ingredient Details [En]`   
    .page`${url}en/something`   
    .beforeEach(async t => {              
        await t   
          .click(button1)   
          .wait(1000)
    })

Я получаю ошибку:

1) - Error in fixture.beforeEach hook -
      The specified selector does not match any element in the DOM tree.   

> | Selector('#accept-button')

Кажется, что есть какая-то проблема с синхронизацией, из-за которой иногда он не ждет правильно?

Спасибо.


person LuVu    schedule 14.05.2019    source источник
comment
Без рабочего примера сложно определить причину проблемы. Укажите небольшой проект или URL-адрес вашего веб-сайта, который демонстрирует проблему.   -  person Alex Kamaev    schedule 15.05.2019
comment
Я думаю, что элемент DOM иногда загружается слишком долго. Вот почему он не работает в зависимости от сети. Есть ли способ дождаться завершения загрузки всех элементов DOM, прежде чем он выполнит код? Спасибо.   -  person LuVu    schedule 15.05.2019
comment
TestCafe ждет, пока целевая страница полностью загрузится, поэтому здесь не должно быть ошибки. Однако вы можете попробовать увеличить значение тайм-аута селектора. См. Следующую статью: devexpress.github.io/testcafe/documentation/test-api/.   -  person Alex Kamaev    schedule 16.05.2019


Ответы (1)


Testcafe предоставляет метод отладки t.debug(), который останавливает тест и позволяет отлаживать проблему с помощью инструментов разработчика браузера. Возможно, сделав это, вы сможете проверить, загружен ли элемент в момент, когда вы пытаетесь нажать на кнопку.

Для получения дополнительной информации: https://devexpress.github.io/testcafe/documentation/test-api/debugging.html#client-side-debugging:

person Zuti Kinez    schedule 17.05.2019