ホームページ >バックエンド開発 >Python チュートリアル >Selenium で WebDriverWait を使用して、動的 Web ページ内のクラスごとに要素を見つけるにはどうすればよいですか?

Selenium で WebDriverWait を使用して、動的 Web ページ内のクラスごとに要素を見つけるにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-11 00:20:111005ブラウズ

How Can I Use WebDriverWait with Selenium to Locate Elements by Class in Dynamic Web Pages?

WebDriverWait によるクラス仕様の活用

JavaScript 経由で読み込まれる動的コンテンツを含む Web サイトを含む Web スクレイピング プロジェクトでは、Selenium ライブラリと Python を統合することで効率が向上します要素の識別と読み込みを制御できるようにすることで。これにより、スクレイピングを続行する前に、特定の要素がレンダリングされるまで待機できるようになります。

ただし、ID ではなくクラスで要素を指定する場合、EC.presence_of_element_located((By.ID, "myDynamicElement")) を使用すると、チャレンジ。これに対処するには、By.class を複数のクラス名で使用することはできないため、エラーが発生します。

解決策

この制限を克服し、要素をクラスごとに効果的に指定するには、次のことを検討してください。他の WebDriverWait ExpectedConditions メソッド (visibility_of_element_located() や element_to_be_clickable() など) を使用します。さらに、CSS_SELECTOR または XPATH を使用すると、ID 属性と CLASS 属性を組み合わせて正確に識別できます。

element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located(
    (By.CSS_SELECTOR, ".ng-binding.ng-scope#tabla_evolucion"))
XPATH:

最適なソリューションは特定の状況によって異なることを覚えておいてください。プロジェクトと Web サイトの HTML 構造の要件。
element = WebDriverWait(driver, 20).until(EC.visibility_of_element_located(
    (By.XPATH, "//*[@class='ng-binding ng-scope' and @id='tabla_evolucion']"))

以上がSelenium で WebDriverWait を使用して、動的 Web ページ内のクラスごとに要素を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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