web-dev-qa-db-ja.com

getリクエストサイプレスが中止されたためにページがロードされるのを待つためにcy.wait()を使用することは避けてください

要素をクリックしてログインする前にページをロードする必要があるヒノキテストを実行していますが、何らかの理由でGETリクエストが失敗した(そして中止された)ため、ページのロードに永遠に時間がかかり、追加しない限り最終的にタイムアウトになりますcy.click()呼び出しの前のcy.wait(6000)。 cy.wait()を使用せずに、ページが読み込まれるのをなんとか待つ必要があります。中止されたGETリクエストを修正できない場合、どうすればこれを行うことができますか?

enter image description here

  cy.visit(loginUrl)
  cy.url().should('contain', '#/loginPortal')
  cy.wait(6000) //Allows page to load before trying to log in, needs to be removed
  cy.contains('ButtonText').click()
5
ejscribner

続行する前に、特定のURLがアドレスバーに表示されるのを待つようにサイプレスに指示すると便利です。

cy.get('#login').click();
cy.location('pathname', {timeout: 20000}).should('include', '/path/to/page');

これは、ログインまたはページ変更後にトリガーされるリダイレクトを待機するために使用できます。 Rui Marquesが説明しているように、これはXHRリクエストにcy.waitを使用する前に必要な最初のステップかもしれません。

0
emery