如何使用Selenium WebDriver和Python在框架集中导航子帧?

2024-07-08 08:05:40 发布

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

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”和“Entite”框架,但无法成功地导航到“SOMMAIRE”框架。。。在

我试过:

^{pr2}$

但我总是有以下例外:

selenium.common.exceptions.NoSuchFrameException: Message: no such frame

我也读过这些链接,但没有一个能帮我做我想做的事。。。在

Link1Link2Link3

非常感谢。在


Tags: nonamesrc框架someelementsfrframe
3条回答

用户nehabedi似乎在正确的轨道上,但是响应需要编辑:Try

driver.switch_to.frame(driver.find_element_by_xpath('xpath_of_SOMMARIE')) 

这对我有用。在

尝试使用XPATH导航到SOMMAIRE

driver.switchTo().frame(driver.findElement(By.xpath("xpath_of_SOMMARIE")));

SOMMAIRE帧不在ENTETE帧内(而且,根据HTML片段-它实际上不在任何帧内)。这意味着您不需要先切换到ENTETE。直接切换到SOMMAIRE

driver.switch_to_default_content()  # in case you were inside an iframe before
driver.switch_to.frame("SOMMAIRE")

相关问题 更多 >

    热门问题