使用Selenium Python获取Iframe Src内容

时间:2015-08-05 14:54:46

标签: python html selenium iframe

我已添加到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文件中写入的文本。

感谢您的帮助。

2 个答案:

答案 0 :(得分: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)  

答案 1 :(得分:0)

由于某些网站的脚本在将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()

仅当您希望以后可以在页面上执行其他操作时,才需要最后一行。