【问题标题】:Python Selenium switch into an iframe within an iframePython Selenium 在 iframe 中切换到 iframe
【发布时间】:2014-06-11 17:42:10
【问题描述】:

我正在尝试使用 Selenium、Python 和 BS4 访问 iframe 中的 iframe

from bs4 import BeautifulSoup
from selenium import webdriver
import time
import html5lib

driver = webdriver.Firefox()
driver.implicitly_wait(10)

driver.get('http://myurl.com')
try:
    time.sleep(4)
    iframe = driver.find_elements_by_tag_name('iframe')[0]
    driver.switch_to_default_content()

    driver.switch_to_frame(iframe)
    driver.switch_to_default_content()
    driver.find_elements_by_tag_name('iframe')[0]

    output = driver.page_source

    print output

finally:
    driver.quit();

在返回的文本中,似乎还有两个 iframe。我将如何访问这些?我在上面的代码中尝试过,但没有成功。

【问题讨论】:

    标签: python iframe selenium


    【解决方案1】:

    switch_to_default_content() 会将您返回到文档的顶部。发生的事情是您切换到第一个 iframe,切换回文档顶部,然后尝试找到第二个 iframe。 Selenium 找不到第二个iframe,因为它在第一个iframe 内。

    如果你删除第二个switch_to_default_content() 你应该没问题:

    iframe = driver.find_elements_by_tag_name('iframe')[0]
    driver.switch_to.default_content()
    
    driver.switch_to.frame(iframe)
    driver.find_elements_by_tag_name('iframe')[0]
    

    【讨论】:

      猜你喜欢
      • 2018-07-22
      • 1970-01-01
      • 2017-12-03
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      • 2021-11-05
      • 2023-03-07
      相关资源
      最近更新 更多