2017-07-03 3 views
0

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.

+0

Luka Lopusina. Je ne peux pas reproduire votre scénario dans un exemple simple. Pourriez-vous fournir une URL à votre page? –

Répondre

0

Le problème est dans la variable TEST_URL. S'il contient une adresse IP vide (par exemple, 'xxx.xx.x.xxx'), navigateTo redirigera le navigateur vers 'http://xxx.xx.x.xxx/xxx.xx.x.xxx' car l'action navigateTo traite cette chaîne comme un chemin relatif.

Pour résoudre le problème, incluez le protocole dans la chaîne TEST_URL, par ex. 'http://xxx.xx.x.xxx'.