使用 Selenium Python 获取 Iframe Src 内容

use*_*567 7 html python iframe selenium

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

<iframe name="iframe_name" src="maintenance_state.txt" frameborder="0" height="40" allowtransparency="allowtransparency" width="800" align="middle" ></iframe>
Run Code Online (Sandbox Code Playgroud)

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

maintain = driver.find_element_by_name("iframe_name")
Run Code Online (Sandbox Code Playgroud)

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

谢谢你的帮助。

Sil*_*own 10

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

driver.switch_to.frame(driver.find_element_by_name("iframe_name"))
print(driver.page_source)
driver.switch_to.default_content()
Run Code Online (Sandbox Code Playgroud)

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


ale*_*cxe 5

您可以获取该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)  
Run Code Online (Sandbox Code Playgroud)