После загрузки изображения с помощью TestCafe сервер выполнит некоторую обработку. На этот раз метка на веб-сайте будет иметь метку «Inprogress». После того, как сервер будет готов, он изменится на сегодняшний день. Однако я хочу сказать сценарию Testcafe подождать, пока метка больше не будет «Inporgress». Для этого я сделал:
const DeliveryStatus = {
element: Selector('div.cl-asset-published').with({timeout: 70000}),
delivered: 'Inprogress'
};
А в сценарии у меня
await t
.expect(DeliveryStatus.element).notContains(DeliveryStatus.delivered, { timeout: 70000 })
Но этот шаг терпит неудачу. Я получил сообщение: «AssertionError: тестируемый объект должен быть массивом, картой, объектом, набором, строкой или слабым набором, но заданной функцией», но я понятия не имею, почему.
Любое предложение исправить эту проблему?





Вы передаете селектор элемента, который возвращает элемент, но не строку, в функцию expect. Вместо этого попробуйте использовать свойство элемента innerText следующим образом:
await t
.expect(DeliveryStatus.element.innerText)
.notContains(DeliveryStatus.delivered, { timeout: 70000 })