ホームページ >バックエンド開発 >Python チュートリアル >要素が表示されているにもかかわらず、Selenium WebDriverWait が動作しないのはなぜですか?
Selenium を使用してデータをスクレイピングする場合、表示されるまでに時間がかかる動的要素を処理することが重要です。ただし、要素が表示されるまで実行を一時停止する WebDriverWait が期待どおりに動作しないという問題が発生しました。この問題は、要素が表示されていても WebDriverWait が要素を見つけることができない分離インスタンスでのみ発生します。
ユーザーのコードによると、ユーザーは 20 秒の遅延と present_of_element_located() メソッドを備えた WebDriverWait を使用しています。要素ロケーターは、ユーザーがカスタム列を選択できるように、新しいウィンドウを開くボタンを検索しています。
この問題を解決するには、presents_of_element_located の代わりに element_to_be_clickable() を使用することをお勧めします。 ()。 present_of_element_located() メソッドは要素が DOM 上に存在することを確認するだけですが、element_to_be_clickable() メソッドは要素が表示されるだけでなくクリック可能であることを確認します。この変更により、新しいウィンドウで要素が表示されている場合でも、要素の選択に失敗する場合があるという問題が解決されます。
状況をさらに明確にするために、3 つのメソッドを調べてみましょう。メソッド言及:
この特定のケースでは、次のように使用します。 element_to_be_clickable() は、カスタム列ボタンが存在して表示されるだけでなく、有効になってクリックできる状態になることを保証します。これにより、新しいウィンドウで要素を選択する際に時折失敗する問題が解消されます。
以上が要素が表示されているにもかかわらず、Selenium WebDriverWait が動作しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。