1

Protractor for .NET を使用して、C# (Visual Studio 2015) で記述された Selenium テストを実行しようとしています。これは、私がオンラインで見つけた任意のパブリック Angular2 アプリケーションで問題なく動作します。

ただし、弊社で構築中のAngular2アプリケーションでは動作しません。単純な「FindElement」コマンドはそれぞれタイムアウトします (設定した時間枠の後)。

フロントエンド チームは、既に分度器が組み込まれている Angular-CLI を使用していて、すべてが素晴らしいと言っています。私がしようとしている方法でこれをテストすることはできませんか? それとも、私が見逃している設定がいくつかありますか?

助けてくれてありがとう!

4

3 に答える 3

1

最後に: 問題は解決しました。BBaiaが上記のコメントで言ったようなものです。Angular 2/4 では呼び方が異なりますが、原則は同じです。

テスト対象のアプリケーションは更新されたデータを常に (数ミリ秒ごとに) チェックしており、Angular は安定した状態にはなりませんでした。分度器のWaitForAngularメソッドは、Angular が安定するのを待っているため、タイムアウトしました。

フロントエンドの開発者は、定期的なポーリングを Angular の外に移動し、データが実際に変更された場合にのみ、更新された情報を Angular にフィードバックできるようにすることで私を助けてくれました。

次の 2 行の JavaScript をブラウザのコンソールで実行して、アプリケーションが安定した状態かどうかを確認します。

var testabilities = window.getAllAngularTestabilities();
testabilities[0].isStable();

こちらのブログ記事にもまとめました。

ありがとう!

于 2017-09-16T16:01:06.747 に答える