В TestCafe при нажатии тега привязки у меня есть перенаправление на новую страницу и событие, которое в основном записывает событие щелчка в объект.
Я хочу проверить значение события клика в объекте в TestCafe, но поскольку происходит перенаправление, я теряю объект.
Вручную я могу сделать это, так как я могу удерживать shift
, нажимая на ссылку и открывая новое окно для перенаправленной страницы, но сохраняя исходную страницу в исходном окне, а затем вижу объект в консоли.
Попытка выяснить, есть ли способ «симулировать» щелчок, но не выполнять перенаправление. Или, как вариант, можно как-то утверждать сразу после клика, но до редиректа?
мини пример:
await t
.click('a') // here it already redirects so I'll lose the object
.expect(object).contains('value')
Следующий тест показывает, как вы можете отключить и включить навигацию для ссылки:
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);
});