使用Selenium Python获取Iframe Src内容

2024-05-16 11:07:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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文件中写入的文本。

谢谢你的帮助。


Tags: 文件namesrctxtmiddlehtmlmaintenancewidth
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)  

由于某些站点的脚本会阻止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()

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

相关问题 更多 >