【问题标题】:Get Iframe Src content using Selenium Python使用 Selenium Python 获取 Iframe Src 内容
【发布时间】:2015-10-28 10:24:25
【问题描述】:

我已添加到一个 html 文件:maintenance.html 一个 iframe:

<iframe name="iframe_name" src="maintenance_state.txt" frameborder="0" height="40" allowtransparency="allowtransparency" width="800" align="middle" ></iframe>

我想使用 Python 和 Selenium 获取 src 文件 maintenance_state.txt 的内容。 我正在使用以下方法定位 iframe 元素:

maintain = driver.find_element_by_name("iframe_name")

但是,maintain.text 返回一个空值。 如何获取maintenance_state.txt 文件中写入的文本。

感谢您的帮助。

【问题讨论】:

  • 获取“maintenance_state.txt”的内容是什么意思,意思是读取文件?
  • 假设maintenance_state.txt的内容是“测试状态”。我想将该内容存储到一个变量中。 str="测试状态"

标签: python html selenium iframe


【解决方案1】:

如果 iframe 作为主文档加载,某些网站的脚本会阻止 iframe 正常工作,因此了解如何读取 iframe 的源代码而不需要为其 URL 发出单独的 driver.get 也是值得的:

driver.switch_to.frame(driver.find_element_by_name("iframe_name"))
print(driver.page_source)
driver.switch_to.default_content()

仅当您希望之后能够对页面执行其他操作时才需要最后一行。

【讨论】:

    【解决方案2】:

    您可以获取src 元素,导航到它并获取page_source

    from urlparse import urljoin
    
    src = driver.find_element_by_name("iframe_name").get_attribute("src")
    url = urljoin(base_url, src)
    
    driver.get(url)
    print(driver.page_source)  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      相关资源
      最近更新 更多