私たちはレガシーコードで作業しており、不安定なテストに問題があります。
デフォルトのタイムアウトを増やしたいのですが、driver.findElementは多くの場所で使用されています。WebDriverWaitを使用するために各呼び出しをオーバーライドするのは大きな作業です。
暗黙の待機を使用することをお勧めします。これは、一度設定するだけでよいため、理想的に見えました。
getDriver().manage().timeouts().implicitlyWait(5000, TimeUnit.MILLISECONDS);
これを初期化コードブロックに追加しました。残念ながら、1つのテストケース(50テスト)を実行すると、パフォーマンス爆弾が30秒から600秒に増加します。
なぜパフォーマンスがこれほど悪化したのかわかりません。要素が存在しない場合(テストに合格した場合)にのみ最大の時間がかかると思いました。この呼び出しで状態をポーリングすると思いました。しかし、ポーリング間隔をどこに設定するかもわかりません...ドキュメントには、慎重に使用する必要があると記載されていますが、これは完全に使用できません。
私たちはimplicitlyWait()を使用して正しい方向に進んでいますか?テストを強化する別の方法はありますか?
更新調査の結果、implicitlyWait()とdriver.getElements()を使用しているため、速度が低下しているようです。implicitwaitを無効にして、呼び出しの直後に再適用すると、テストの実行速度が大幅に向上します。400か所以上でgetElementsinを使用しています(!)-続行する方法に関する推奨事項はありますか?