Nightwatch.jsを使用して、Vue.jsアプリケーションでe2eテストを実行しています。私のアプリケーションには長いフォームが含まれており、テストの実行中にビューの外側にあるボタンを「非表示」にします。の使用法を示唆する多くの質問を調べましたgetLocationInView
が、ドキュメントには明確に記載されています
スクロールして表示されたら、画面上の要素の位置を特定します
私は次のようなものを使ってみました
browser
.url("http://localhost:8080")
.setValue("@email", "[email protected]")
.getLocationInView("#myElement")
.submit() //defined elsewhere
.waitForElementVisible("#error", 3000);
このスニペットは、フォームの下部にあるボタンをクリックすることになっていますsubmit()
が、エラーのスクリーンショットを取得すると、スクロールダウンがまったく発生していないことがわかり、ボタンの焦点が合っていないため、クリックされません。
最終的にページの一番下までスクロールして、変更せずに、または少なくとも元のコードに最小限の変更を加えてテストに合格できるようにする方法はありますか?
ボタンをクリックすると、最初にそのボタンを画面に表示するためにそのボタンまでスクロールする必要がありますが、明らかsetValue
にそれ自体がスクロールします。したがって、スクロールしてクリックする代わりに、次のようにボタンの値を設定します。
browser
.url("http://localhost:8080")
.setValue("@email", "[email protected]")
.setValue("@submitButton", " ") //<---this line
.waitForElementVisible("#error", 3000)
これは、要素(ボタン)にフォーカスを設定してからスペースバーを押すようなものです。
もちろん、これは最善の方法ではありませんが、フォームにスペースがなく、ボタンの送信/トリガーが制限されている場合は、これが役立つ回避策になると思います。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加