ホームページ >バックエンド開発 >Python チュートリアル >Selenium を使用してネストされた iframe 内の HTML 要素を選択するにはどうすればよいですか?

Selenium を使用してネストされた iframe 内の HTML 要素を選択するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-25 22:36:10696ブラウズ

How Can I Select HTML Elements Inside Nested iframes Using Selenium?

Selenium でネストされた iframe 内の HTML 要素を選択する

Selenium でネストされた iframe 内の要素を操作するには、ターゲットを選択する前に適切な iframe に切り替える必要があります要素。デフォルトの Selenium フォーカスは上部ウィンドウに残り、目的の iframe に明示的に切り替えない限り、その中の要素を操作することはできません。

フレーム切り替えメソッド

特定の iframe に切り替えるために、Selenium には 3 つのオプションがあります:

  • By Frame名前: iframe の「name」属性を使用
  • フレーム ID 別: iframe の「id」属性を使用
  • フレーム インデックス別: 内の iframe の位置に基づいて、ページ

例:

# Switch to an iframe by its name
driver.switch_to.frame("iframe_name")

# Select an element within the iframe
element = driver.find_element_by_css_selector(".element_selector")

# Switch back to the main frame
driver.switch_to.default_content()

より良いアプローチ:

iframe 遷移の処理を改善するには、 Selenium の WebDriverWait クラスをframe_to_be_available_and_switch_to_it() が予期される状態です。この条件は、ターゲット iframe が使用可能になるのを待機し、自動的にそれに切り替わります。

# Wait for the iframe with the specified ID to become available and switch to it
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.ID, "iframe_id")))

# Select an element within the iframe
element = driver.find_element_by_css_selector(".element_selector")

# Switch back to the main frame
driver.switch_to.default_content()

追加の考慮事項

  • ネストされた iframe を処理するには、
  • iframe 内の要素を操作する場合、要素の読み込み時間を考慮する必要がある場合があります。

参照:

詳細については、 Selenium での iframe 処理に関する議論については、以下を参照してください。

  • [方法iframe の下の #document を処理する](https://stackoverflow.com/questions/10030766/selenium-webdriver-find-element-within-iframe)

以上がSelenium を使用してネストされた iframe 内の HTML 要素を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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