TestCafeテストを実行する前に、ページ内のWebコンポーネントがアップグレードされるのを待ちます(つまり、テストを実行する前に、WebComponentsReady
イベントを待つ)。これを行う最善の方法は何ですか?TestCafeで 'WebComponentsReady'イベントを待つ最善の方法は何ですか?
1
A
答えて
1
イベントが発生した後、TestCafeはページ上の任意のアクションの実行を開始します。ご覧のとおり、イベントはDOMContentReady
より前に発生させることができます。 TestCafeあなたがClientFunctionを使用して、ブラウザでいくつかのイベントを待つことができます:
const waitForWebComponentsReady = ClientFunction(() => {
return new Promise(resolve => {
window.addEventListener('WebComponentsReady', resolve);
});
});
await waitForWebComponentsReady();
しかし、TestCafeはWebComponentReady
イベントが発生する前にこのコードが実行されることを保証することはできませんのでご注意します。その結果、この約束は解決されません。
解決策として、必要なWebコンポーネントがロードされているかどうかを確認する別の方法があります。たとえば、あなたは、いくつかの要素がページ上に表示されていることを確認することができます。
await t.expect(Selector('some-element').visible).ok();
一方、TestCafeはadd the capability to execute a custom script before page initialization scriptsに機能の提案を持っています。機能が実装されている場合は、次のようなコードを使用できます。
import { ClientFunction } from 'testcafe';
const initScript = `window.addEventListener('WebComponentsReady',() => window.WebComponentsLoaded = true);`;
fixture `My Fixture`
.page `http://example.com`
.addScriptToEachPage(initScript)
.beforeEach(async t => {
await t.expect(ClientFunction(() => window.WebComponentsLoaded)()).ok();
});
関連する問題
- 1. JavaでThreadPoolExecutorの終了スレッドを待つ最善の方法は何ですか?
- 2. 低レベルの同期を待つ最善の方法は何ですか?
- 3. これは、セレニウムWebElementを待つ最善の方法ですか?
- 4. Ember.jsでイベントを処理する最善の方法は何ですか?
- 5. MVVMでアニメーションが終了するのを待つ最善の方法は何ですか?
- 6. AsyncTask内で非同期ネットワークタスクを待つ最善の方法
- 7. MS Access VBAでフォームが閉じられるのを待つ最善の方法は何ですか?
- 8. 2つのプロパティの配列を持つ最善の方法は何ですか?
- 9. C#で特定の時間(たとえば10秒)待つ最善の方法は何ですか?
- 10. .NETに関してタスクが終了するのを待つ最善の方法は何ですか?
- 11. キーでPHPで何かをハッシュする最善の方法は何ですか?
- 12. C++でOpenEventメソッドでイベントを待つ適切な方法は何ですか?
- 13. 遅延が0の予定された未来を待つ最善の方法は何ですか?
- 14. WCFで認証する最善の方法は何ですか?
- 15. C++でキャストする最善の方法は何ですか?
- 16. UIコントロールを待つ最善の方法は?
- 17. VCLファイルをデバッグする最善の方法は何ですか?
- 18. ビューモデルを構築する最善の方法は何ですか?
- 19. NSMutableArrayをシャッフルする最善の方法は何ですか?
- 20. オブジェクトを解決する最善の方法は何ですか?
- 21. データフレームを回避する最善の方法は何ですか?
- 22. サブスクライバシステムを実行する最善の方法は何ですか?
- 23. ナイトモードをサポートする最善の方法は何ですか?
- 24. EmberJS - ユーザーサインイン - アプローチする最善の方法は何ですか?
- 25. PHP/MySQL経由でFullCalendarで定期的なイベントを実装する最善の方法は何ですか?
- 26. クッキーは最善の方法ですか?
- 27. プログラムがQtでシグナルを待つ最も簡単な方法は何ですか?
- 28. C#でイベントの開始時刻と終了時刻を処理する最善の方法は何ですか?
- 29. Vue Jsで少数のコンポーネントインスタンスにイベントを伝播する最善の方法は何ですか?
- 30. retrofit2が非同期を続行するまで待つ最善の方法