‘WebDriver’ object has no attribute ‘switch_to_frame’

Posted in :

很常遇到 iframe, 不知道為什麼設計師要這樣子去做,弄了很多 iframe 在同一個表單裡。要在 python selenium 裡存取 iframe 可以這樣做:

iframes = driver.find_elements(By.TAG_NAME, "iframe")
for iframe in iframes:
    driver.switch_to.frame(iframe)
    ...
    driver.switch_to.default_content()

切換 iframe

方法1:有id,並且id唯一,直接寫id

driver.switch_to.frame(“iframe-id”)

方法2:有name,並且唯一,直接寫name

driver.switch_to.frame(“iframe-name”)

方法3:先取得iframe元素

iframe = driver.find_elements(…)
driver.switch_to.frame(iframe)

方法4:通過index索引(從0開始)

driver.switch_to.frame(0)

使用switch_to.frame 之後,要需退出iframe,再操作。如果沒退出的話,會變成是往 iframe 裡的 iframe 走。

driver.switch_to.default_content()

多個第一層的平行iframe的切換問題

1.switch to 第一層的f1.

driver.switch_to_frame(“f1”)

······

2.退出iframe 到 root.

driver.switch_to_default_content()

3.switch to 第一層的f2.

driver.switch_to_frame(“f2”)

ifram f2 在 iframe1 的內容中,切換到f2 解法:

driver.switch_to_frame(“f1”)
driver.switch_to_frame(“f2”)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *