testcafe await t.expect с тайм-аутом ненадежный - PullRequest
0 голосов
/ 05 мая 2020

У меня есть сценарий, в котором я жду, пока элемент не появится, и как только это произойдет, я выполняю действие щелчка. на самом деле происходит щелчок, хотя ожидание элемента с параметром тайм-аута не проверяется

await t.expect(StatusOnProgressIcon.exists).notOk('Unexistence of On progress status icon', { timeout: 120000 })
await t.click(someTab)

Я ожидал бы, что вторая строка будет выполняться только после того, как первая строка будет утверждена положительно

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Мои попытки воспроизвести это поведение оказались безуспешными. Механизм интеллектуального ожидания для утверждений правильно ожидает, пока фактическое значение утверждения не совпадет с ожидаемым значением:

enter image description here

Вот мой пример тестового примера .

61609192.html

<!DOCTYPE html>
<head>
</head>
<body>
<p id="icon">Status Icon</p>
<button id="button" type="button">Add to cart</button>
</body>
<script>

setTimeout(() => {
    document.getElementById("icon").remove();
}, 8000);

</script>
</html>

61609192.js

import { Selector} from 'testcafe';

fixture('fixture')
    .page('./61609192.html');

test('test', async t => {

    const icon = Selector("#icon");
    const button = Selector("button");

    await t.expect(icon.exists).notOk('Icon does not exist', { timeout: 120000 })
    await t.click(button)

});

Обновите мой тестовый пример, чтобы проиллюстрировать проблему, или предоставьте свой собственный тестовый пример, где мы можем увидеть проблема в действии.

1 голос
/ 05 мая 2020

Попробуйте

await t.expect(await StatusOnProgressIcon.exists).notOk('Unexistence of On progress status icon', { timeout: 120000 })
...