Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python Selenium】サイトへのアクセスで親フレームにアクセスする方法

 

 

 SeleniumPythonを使ってサイトにアクセスする際、親フレームにアクセスする方法について解説します。

 

Seleniumでは、フレームやインラインフレーム(iframe)内にある要素を操作する際、フレーム間の移動が必要です。

 

ここでは、親フレームに戻る方法と注意点を紹介します。

 

準備

 


まずは基本的な環境設定です。

 

Seleniumをインストールして、必要なブラウザドライバも準備してください。

 

親フレームにアクセスする手順例

 

1. サイトにアクセス

2. 指定フレームに移動

3. 必要な要素の操作

4. 親フレームに戻る

5. 必要な要素の操作

 

例として、以下のコードでは子フレームに移動して要素を操作した後、親フレームに戻って要素を操作します。

 

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# ドライバを起動
driver = webdriver.Chrome()

# 1. サイトにアクセス
driver.get("https://example.com")

# 2. 子フレームに移動
driver.switch_to.frame("child_frame")
# 子フレーム内の要素を操作
element_in_child = driver.find_element(By.NAME, "element_in_child")
element_in_child.send_keys("Seleniumで子フレームの要素を操作")

# 3. 親フレームに戻る
driver.switch_to.parent_frame()
# 親フレーム内の要素を操作
element_in_parent = driver.find_element(By.NAME, "element_in_parent")
element_in_parent.send_keys("親フレームに戻って要素を操作")

# 終了処理
driver.quit()

 

 

「driver.switch_to.frame("child_frame")」で指定の子フレームに移動します。ここでは、子フレーム内の要素を取得して操作することができます。


「driver.switch_to.parent_frame()」を使って親フレームに戻ります。このメソッドを使用することで、元のフレームに戻り、親フレームの要素を操作できます。

 

注意点

 

「switch_to.parent_frame()」は、子フレームから1つ上の親フレームに戻る場合にのみ使用可能です。

 

フレームが多層構造の場合、トップレベルのフレームに戻るには「driver.switch_to.default_content()」を使います。



以上で、Seleniumを使用して親フレームに戻る方法の解説は完了です。

この記事が役に立てば幸いです!