je test suivant dans TestCafe:Comment indiquer à TestCafe d'attendre après la méthode navigateTo?
import { Selector } from 'testcafe';
const TEST_URL = process.env.TEST_URL;
fixture('/').page(`${TEST_URL}/`);
test(`users should be able to view the '/' page`, async (t) => {
await t
.navigateTo(TEST_URL)
.expect(Selector('H1').withText('All Users').exists).ok()
});
Et ce test échoue:
/
✖ users should be able to view the '/' page
1) AssertionError: expected false to be truthy
Browser: Chrome 59.0.3071/Mac OS X 10.12.5
5 |fixture('/').page(`${TEST_URL}/`);
6 |
7 |test(`users should be able to view the '/' page`, async (t) => {
8 | await t
9 | .navigateTo(TEST_URL)
> 10 | .expect(Selector('H1').withText('All Users').exists).ok()
11 |});
12 |
Le problème est que la page ne se charge pas complètement et il n'y a pas de balise h1 (qui est rendu de React composant) mais je ne sais pas comment dire à TestCafe d'attendre le chargement de la page.
J'ai essayé ceci:
import { Selector } from 'testcafe';
const TEST_URL = process.env.TEST_URL;
fixture('/').page(`${TEST_URL}/`);
test(`users should be able to view the '/' page`, async (t) => {
await t.expect(Selector('H1').withText('All Users').exists).ok()
});
qui fonctionne mais j'ai besoin pour un test à utiliser NavigateTo donc je voudrais savoir ce qu'il faut changer pour que la version de test avec NavigateTo fonctionne également.
J'ai essayé de mettre await pour chaque ligne comme ceci:
import { Selector } from 'testcafe';
const TEST_URL = process.env.TEST_URL;
fixture('/').page(`${TEST_URL}/`);
test(`users should be able to view the '/' page`, async (t) => {
await t.navigateTo(TEST_URL)
await t.expect(Selector('H1').withText('All Users').exists).ok()
});
mais cette erreur est la même.
Luka Lopusina. Je ne peux pas reproduire votre scénario dans un exemple simple. Pourriez-vous fournir une URL à votre page? –