TestCafe сохранит данные при нажатии - PullRequest
3 голосов
/ 30 мая 2019

В TestCafe, по щелчку тега привязки, я перенаправляю на новую страницу и событие, которое в основном регистрирует событие click для объекта.

Я хочу проверить значение события click в объекте в TestCafe, но поскольку происходит перенаправление, я теряю объект.

Вручную я могу сделать это, так как я могу удерживать shift при нажатии на ссылку и открывать новое окно для перенаправленной страницы, но сохранить исходную страницу в исходном окне и затем увидеть объект в консоли. .

Попытка выяснить, есть ли способ «симулировать» щелчок, но не выполнять перенаправление. Или, альтернативно, быть в состоянии утверждать как-то сразу после нажатия, но до перенаправления?

мини пример:

await t
.click('a') // here it already redirects so I'll lose the object
.expect(object).contains('value')

1 Ответ

4 голосов
/ 03 июня 2019

Следующий тест показывает, как можно отключить и включить навигацию для ссылки:

import { Selector, ClientFunction } from 'testcafe';

fixture `Navigation`
    .page `example.com`;

const enableNavigationControl = ClientFunction(selector => {
    const element = selector();

    element.addEventListener('click', event => window.disableNavigation && event.preventDefault());
});

const disableNavigation = ClientFunction(() => window.disableNavigation = true);
const enableNavigation  = ClientFunction(() => window.disableNavigation = false);

test('navigation', async t => {
    const link = Selector('a');

    await enableNavigationControl(link);
    await disableNavigation();

    await t.click(link);

    // Perform assertions...

    await enableNavigation();

    await t.click(link);
});
...