私はWebdriver
を初めて使用し、c#
を書きました。私はスクリプトで多くのthread.sleep()
コマンドを使用して、Seleniumが試しすぎてクリックしすぎていないことを確認しました。研究の多く時に私は、これは眉をひそめていると、それを行うには、「より良い」の方法があるたので、私は使用することを開始しました: - :Selenium c#wait.until(expectedconditions)...関数が画面上のオブジェクト/要素の検索に失敗しました
wait = new WebDriverWait(driver, new TimeSpan(0, 0, 0, 10));
-
wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("FieldId")));
を待って別のクラスで定義されています
そのような要素例外::私はこれだけは取得せずにスクリプトを実行しているの2/10倍の仕事を得ることができます
要素を見つけることができませんが......
私はthread.sleep
の使用を中止しました。この問題の例はたくさんあります。たくさんの研究の後、私はいつもこれがアドバイスされた方法だと思っていますが、それは全く信頼できないようです。私は何かを逃したか?要素は2秒後に常に存在し、10秒が経過する前にエラーが発生します。私は似たように聞こえる少なくとも10の他の投稿を読んだことがあるが、どれも解決しない... Thread.Sleep(5000)
!
'WebDriverWait'を使用している場合、' TimeoutException'をスローしながら 'No such element exception'をどうやって得ることができますか? –
@SaurabhGaur 'Until()'が無視リストにない場合に例外をスローする –
あなたは暗黙の待ち時間も使用していますか?暗黙的および明示的な待機の両方を同時に使用すると、予期しない結果が生じる可能性があります。 – JeffC