Testcafe: Тестирование опросом - PullRequest
0 голосов
/ 04 августа 2020

Есть ли способ проверить страницу, опросив ее данные? У нас есть задержка сервера, и время от времени требуется перезагружать страницу, чтобы получить правильные данные.

Первоначально я думал о добавлении настраиваемого метода в селектор и выполнить перезагрузку там, но это не удалось, так как он возвращает значение задолго до завершения загрузки страницы.

Есть указатели?

1 Ответ

1 голос
/ 05 августа 2020

Выбор зависит от ваших требований. Один из способов - написать этот код:

import { Selector, ClientFunction } from 'testcafe';

fixture('My fixture')
    .page('https://www.google.com');

const reloadPage = new ClientFunction(() => location.reload(true));

async function waitForElement ({ numOfRetries = 15 } = {}) {
    for (let i = 0; i < numOfRetries; i++) {
        if (await Selector('#polling-data').exists)
            return true;

        await reloadPage();
    }

    return false;
}

test('My Test', async t => {
    await t.expect(await waitForElement()).ok();
});

Этот тестовый код будет перезагружать страницу указанное количество раз, пытаясь найти элемент с идентификатором polling-data в DOM. Как только элемент будет найден, вы сможете утверждать значения свойств элемента по мере необходимости.

...