使用Selenium Python获取Iframe Src内容

使用Selenium Python获取Iframe Src内容,python,html,selenium,iframe,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> 但是,maintain.text返回的是空值。 如何获取在maintenan

我已经在html文件maintenance.html中添加了一个iframe:

<iframe name="iframe_name" src="maintenance_state.txt" frameborder="0" height="40" allowtransparency="allowtransparency" width="800" align="middle" ></iframe>
但是,maintain.text返回的是空值。 如何获取在maintenance_state.txt文件中写入的文本


谢谢你的帮助

您可以获取
src
元素,导航到它并获取
页面\u 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)  

由于某些站点的脚本会阻止iframe在作为主文档加载时正常工作,因此了解如何读取iframe的源代码而无需发出单独的
驱动程序也是值得的。获取其URL的

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

只有当您希望以后能够对页面执行其他操作时,才需要最后一行。

获取“maintenance_state.txt”的内容意味着读取文件吗?假设maintenance_state.txt的内容是“testing state”。我想将该内容存储到一个变量中。str=“测试状态”
driver.switch_to.frame(driver.find_element_by_name("iframe_name"))
print(driver.page_source)
driver.switch_to.default_content()