ホームページ >バックエンド開発 >Python チュートリアル >Python Selenium で複数の要素がロードされるのを待つ方法は?

Python Selenium で複数の要素がロードされるのを待つ方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-30 03:29:28321ブラウズ

How to Wait for Multiple Elements to Load in Python Selenium?

Python Selenium: 複数の要素のロードを待機します

あなたのタスクには、AJAX 経由でロードされた動的リストに、事前に複数の li 要素があることを確認することが含まれます。進んでいます。実際のコンテンツが利用可能になる前に、リストには最初に読み込みメッセージが表示されます。

カスタム条件で WebDriverWait を使用する解決策

推奨されるアプローチは、ラムダ関数で WebDriverWait を使用することです。カスタム条件を定義します。この関数を使用すると、検出された要素の数が指定された最小値を超えているかどうかを検証できます。

<code class="python">from selenium.webdriver.support import expected_conditions as EC

num_elements = 1
WebDriverWait(driver, timeout).until(
    lambda d: len(d.find_elements_by_css_selector('ul.ltr li[id^="t_b_"] a[id^="t_a_"]')) > num_elements
)</code>

代替アプローチ

  • Using ExpectedConditions.presence_of_element_located (): この条件は、指定された要素の存在を検証しますが、その可視性や状態は保証されません。
  • ExpectedConditions.visibility_of_all_elements_located(): この条件は、次のことを保証します。ロケーター内のすべての要素が表示されます。これは、特定の数の表示要素を待機するために使用できますが、要素が最初から DOM に存在している必要があります。

コード例で使用されている CSS_SELECTOR ロケーターと XPATH ロケーターは、特定の要素識別子に一致するように変更できます。

参考資料:

  • [番号を待つ方法] Selenium と Python を使用してロードされる要素の数](https://stackoverflow.com/questions/27176170/how-to-wait-for-number-of-elements-to-be-loaded-using-selenium-and-python )
  • [Selenium での特定の要素の取得](https://stackoverflow.com/questions/35383413/getting-specific-elements-in-selenium)

以上がPython Selenium で複数の要素がロードされるのを待つ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。