ホームページ >バックエンド開発 >Python チュートリアル >新しい Windows を処理するときに Selenium WebDriverWait が期待どおりに動作しないのはなぜですか?
WebDriverWait が期待どおりに応答しない
Selenium の WebDriverWait は、アクションを続行する前に特定の条件が満たされるのを待つことを目的としています。ただし、場合によっては、指定されたシナリオで説明されているように、期待どおりに機能しない可能性があります。
問題は、新しく開かれたウィンドウで要素を待機するときの期待値の選択にあります。元のコードでは、present_of_element_located() メソッドを使用しています。このメソッドは、要素が DOM 上に存在するかどうかをチェックしますが、その可視性や対話性は保証しません。要素がまだ完全に読み込まれていない場合、またはビューから非表示になっている場合、エラーが発生する可能性があります。
これに対処するには、element_to_be_clickable() を使用することが適切です。これにより、要素が表示される前に表示され、クリック可能であることが保証されます。続けています。これは、完全に初期化するまでに時間がかかる可能性がある新しく開いたウィンドウにとって重要です。
実装:
元の WebDriverWait ステートメントを次のものに置き換えます:
try: myElem = WebDriverWait(self.browser, delay).until(EC.element_to_be_clickable((By.XPATH, xpath)))
element_to_be_clickable() を使用すると、WebDriverWait は新しいウィンドウ内の要素が表示されるまで待機します。見えるだけでなく対話可能です。これにより、新しく開いたウィンドウで要素を選択する際に断続的に失敗する問題が解決されます。
期待メソッドについて:
参考までに、関連する期待メソッドの定義を以下に示します。 Selenium:
以上が新しい Windows を処理するときに Selenium WebDriverWait が期待どおりに動作しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。