Selenium では、要素と対話する前に、要素が表示されるまで待機する必要があることがよくあります。要素の出現時間は変動する可能性があるため、sleep() を使用して待機することは信頼できません。代わりに、WebDriverWait と予期される条件を利用する必要があります。
要素の存在を待機中
DOM 上の要素の存在を確認するには、expected_conditions を present_of_element_located() に設定します。これには要素が表示されている必要はありません。例:
WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".reply-button"))).click()
要素の可視性を待機中
要素から属性を抽出するには、visibility_of_element_located() を使用します。これにより、要素が表示され、ゼロ以外の寸法が確保されます。
email = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".anonemail"))).get_attribute("value")
要素のクリック可能性を待機しています
要素をクリックするには、expected_conditions を element_to_be_clickable() に設定します。 。これにより、要素が表示され、インタラクションが有効になっているかどうかがチェックされます。
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".reply-button"))).click()
その他の参考情報
詳細については、次のリソースを参照してください。
以上がSelenium で要素が存在し、表示され、クリック可能になるまで確実に待つ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。