Реализация функции в testcafé test, которая запускается при изменении URL браузера - PullRequest
0 голосов
/ 21 февраля 2020

Можно ли реализовать функцию, которая проверяет изменение URL в браузере во время тестов (window.location.href)? Я пытался использовать ClientFunction для этого. Но я не смог использовать async / await внутри ClientFunction. С другой стороны, я не смог получить информацию с помощью window.location.href в функции asyn c. Есть ли другой способ получить информацию? :) Я хочу проверить, правильно ли товар помещен в корзину нашего магазина. Поэтому я хотел реализовать функцию, которая всегда запускается, когда статья помещается в корзину и программа переключается на страницу корзины. Я использовал setTimeout для этого, но мне это не очень помогло. : D

Спасибо большое!

Стефан

1 Ответ

1 голос
/ 24 февраля 2020

Я предполагаю, что ваш тестовый пример выполняет некоторые действия, которые добавляют товар в корзину. Я не могу представить сценарий, когда тестовый случай ожидает каких-то «внешних» действий вне его, например, когда другой пользователь работает с вашим сайтом, чтобы добавить статьи в корзину.

Вы можете проверить текущий URL после своего тестового примера кладет статью в корзину. Вы можете извлечь текущий URL-адрес и подтвердить его следующим образом:

import { ClientFunction, t } from 'testcafe';

fixture `check url`
.page `http://example.com`;

test('check url', async t => {
const getLocation = ClientFunction(() => document.location.href);

```
await t.expect(getLocation()).contains('example.com');
```

});

Если ваш сценарий отличается, пожалуйста, опишите его более подробно и / или предоставьте ваш опубликованный c URL-адрес, где мы можем увидеть ваше текущее поведение , Если вам по-прежнему требуется обнаружение изменения URL-адреса, вы можете посмотреть эту тему: Как обнаружить изменение URL-адреса в JavaScript.

...