hmtl 页面的布局如下:
<frameset framespacing="0" border="false" frameborder="0" rows="11%,8%,*">
<frame name="ENTETE" src="fr_entete.htm" scrolling="no" noresize="" marginwidth="0" marginheight="0">Some elements...</frame>
<frameset framespacing="0" border="false" frameborder="0" cols="35%,7%,*">
<frame name="SOMMAIRE" src="fr_sommaire.htm" scrolling="no" noresize="" marginwidth="0" marginheight="0">Some elements...</frame>
<frame name="OUTIL" src="fr_outil.htm" scrolling="no" noresize="" marginwidth="2" marginheight="0">Some elements...</frame>
<frame name="LIBRE" src="fr_libre.asp" scrolling="no" noresize="" marginwidth="2" marginheight="0">Some elements...</frame>
</frameset>
<frame name="TRAVAIL" src="cdc_rechgen.asp" scrolling="yes" noresize="" marginwidth="5" marginheight="0" frameborder="0">Some elements...</frame>
</frameset>
我需要访问框架“SOMMAIRE”。 该框架是框架集的子框架,框架集又是框架集的子框架。 我成功地直接导航到框架“TRAVAIL”和“ENTETE”,但我无法成功导航到框架“SOMMAIRE”...
我试过了:
driver.switch_to_default_content()
driver.switch_to.frame("ENTETE")
driver.switch_to.frame("SOMMAIRE")
但我总是有以下异常:
selenium.common.exceptions.NoSuchFrameException: Message: no such frame
我也阅读了这些链接,但没有一个能帮助我做我想做的事......
非常感谢。
请您参考如下方法:
SOMMAIRE 框架不在 ENTETE 框架内(而且,根据 HTML 片段 - 它实际上不在任何框架内)。这意味着您不需要先切换到 ENTETE。直接切换到SOMMAIRE:
driver.switch_to_default_content() # in case you were inside an iframe before
driver.switch_to.frame("SOMMAIRE")
