私は、Java selenium webdriverプロジェクトに多くのThread.sleep()コマンドを持っています。私はしばしば、sleepコマンドを使用することは悪い習慣であり、ブラウザインスタンスが起動された後、暗黙のうちにコマンドが代わりに宣言されるべきであり、スクリプト全体を処理することを頻繁に読んでいます。このプロジェクトではこれは私の仕事ではありません。Thread.sleep()は、implicitlyWaitよりも優れていることを証明しています
特定の要素に対して多くのNoSuchElementExceptionsがスローされているので、問題を引き起こす各要素の直前にsleepコマンドを追加しました。スクリプトは合格しました。スリープコマンドを解除して30秒間暗黙のうちに宣言したとき、スクリプトはWebdriverException/NoSuchElementExceptionで失敗しました。なぜなら、webdriverはこれらの要素のそれぞれを見つけることができないからです。スリープコマンドは、2〜3秒で要素を見つけることです。 Thread.sleep()はここで優れていると証明していますか?私がExplicitlyWaitを使用しなければならない場合、期待される条件を必要とする多くの要素があるので、それらを多く宣言しなければなりません。回避策はありますか?
明示的な待機に関する問題は、それが個々のケースであることです。関係するすべての要素に対して1つ宣言することはできません。つまり、Thread.sleep()と同様に、スクリプトで何度も宣言する必要があります。正しい? –