如何在使用selenium python切换帧时获得完整的html代码?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在使用selenium python切换帧时获得完整的html代码?相关的知识,希望对你有一定的参考价值。
我正试图对一个有两个框架的html表格进行刮擦。当切换到第一个框架时,代码运行良好,但当切换到默认框架,然后切换到第二个框架时,我无法得到完整的html代码。
driver = webdriver.Chrome('/Users/Administrador/Documents/chromedriver')
main_url = 'https://www.justiciacordoba.gob.ar/Estatico/JEL/Escrutinios/ReportesEleccion20190512/default.html'
driver.get(main_url)
#This works fine:
driver.switch_to.frame("topFrame")
# This doesnt:
driver.switch_to.default_content()
driver.switch_to.frame('mainFrame')
page = driver.page_source
page
输出。
'<html><head></head><body></body></html>'
答案
那 是 全页!
<frame src="about:blank" name="mainFrame" align="center">
#document
<html>
<head></head>
<body></body>
</html>
</frame>
另一答案
看来你看到的行为是正确的。当 WebDriver的重点是在 <frame>
与 名称 作为 顶部框架,除非您从 <select>
元素,并发起搜索,其中的元素在 <frame>
与 名称 作为 主框架 并没有被赎回。因此你会看到以下行为。
代码块:
driver.get('https://www.justiciacordoba.gob.ar/Estatico/JEL/Escrutinios/ReportesEleccion20190512/default.html') driver.switch_to.frame("topFrame") driver.switch_to.default_content() driver.switch_to.frame('mainFrame') print(driver.page_source)
控制台输出。
<html><head></head><body></body></html>
在这种情况下,如果你还想提取完整的HTML从 顶层内容 你可以切换到 default_content()
如下所示。
代码块:
driver.get('https://www.justiciacordoba.gob.ar/Estatico/JEL/Escrutinios/ReportesEleccion20190512/default.html') driver.switch_to.frame("topFrame") driver.switch_to.default_content() driver.switch_to.frame('mainFrame') print(driver.page_source) driver.switch_to.default_content() print(driver.page_source)
控制台输出。
<html><head></head><body></body></html> <html><head></head><frameset rows="190,*" cols="*" framespacing="0" frameborder="NO" border="0" id="fset"> <frame src="Index.html" name="topFrame" scrolling="NO" cd_frame_id_="887435be8ea834d3aec3a905bb2f8019"> <frame src="about:blank" name="mainFrame" align="center" cd_frame_id_="a1abd873a60c8db45dc83e5334321cbc"> </frameset><noframes></noframes> </html>
以上是关于如何在使用selenium python切换帧时获得完整的html代码?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Selenium for Python 中切换到新窗口?
python+selenium:iframe框架中动态id如何切换