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
我也阅读了这些链接,但是没有一个可以帮助我做我想做的事情...
Link1 Link2 Link3
非常感谢。
最佳答案
SOMMAIRE
框架不在ENTETE
框架内(并且根据HTML片段-实际上它不在任何框架内)。这意味着您无需先切换到ENTETE
。只需直接切换到SOMMAIRE
:
driver.switch_to_default_content() # in case you were inside an iframe before
driver.switch_to.frame("SOMMAIRE")
关于python - 如何使用Selenium WebDriver和Python在框架集中导航子帧?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30437278/