Je crée une fonction d'assistance pour mes tests de protractor pour connecter l'application seulement si nécessaire. Ceci est utile pour me permettre d'exécuter chaque test séparément pour le déboguer et, lors de l'exécution de la suite entière, je reçois un petit coup de pouce de performance en n'ayant pas besoin de se connecter avant chaque test.Sur une fonction d'aide de rapporteur, comment puis-je savoir si browser.get a déjà été appelé?
Je dois vous connecter réellement dans deux situations:
- Si aucune page n'a jamais été chargé (
browser.get()
n'a pas été appelé). - Nous sommes sur une page, mais pas encore connecté.
La situation 2 est facile. L'application a un élément qui est montré sur toutes les pages lorsque l'utilisateur est connecté.
La partie difficile est 1. Si j'essaie de trouver l'élément qui indique que l'utilisateur est connecté avant de charger des pages, je reçois l'erreur suivante:
Error while waiting for Protractor to sync with the page: "angular could not be found on the window"
et je ne vois rien sur l'API ou code source protractor qui pourrait me aider à déterminer si des pages déjà chargées.
Les pointeurs sont appréciés.
Je vous remercie beaucoup pour cela, il m'a mis sur la bonne direction. Qu'est-ce que l'astuce pour moi était de mettre le login, en utilisant 'browser.wait()' sur une fonction before (j'ai utilisé 'beforeAll'). Bien sûr 'browser.ignoreSynchronization' est très important aussi, mais que j'avais déjà vu. – ianribas
Et vous avez raison, j'ai simplifié quelque peu la solution en attendant directement mon élément de connexion ('element (by.id ('IdOfLoginElement')). GetText') et en appelant la fonction de connexion sur le gestionnaire d'erreurs. Je n'ai pas vraiment besoin de l'URL. – ianribas
Et, un commentaire conceptuel, c'est un choix conscient de commencer le test sur une page déjà connectée. L'application a une navigation interne, de sorte que chaque test commence généralement par changer l'emplacement, ce qui donne des garanties sur l'état. Et je peux toujours forcer le chargement de la page (et me reconnecter) si les tests deviennent floconneux. – ianribas