2014-03-29 106 views
3

我正在使用嵌套框架的页面工作,并且无法访问子框架。 HTML源代码概要:Python Selenium Webdriver - 导航嵌套框架集

<html> 
    <head></head> 
    <frameset id="0"> 
     <frame name="name"> 
     <frameset cols="10%,20%" id="01"> 
      <frame name="mid1"> 
      <frame name="mid2" scrolling="auto" src="chkclineversion.asp" marginwidth="0" marginheight="0"> 
     </frameset> 
     <frame name="bot"> 
    </frameset> 
</html> 

我需要访问名为“mid2”的帧。这个框架嵌套在一个框架集中,而框架集又嵌套在主框架集内。

我试过下面的代码,但他们做的工作

driver.switch_to_frame("mid2") #direct reference to nested frame name 

driver.switch_to_frame(1) 
driver.switch_to_frame("mid2") #switch to subframe by index and then attempt to reference "mid2". This gives me a no such frame exception1 

我失去了一些东西明显?

我检查了这个link,但它没有说明我的问题。

感谢

回答

3

试试这个:

driver.switch_to_frame("name") 
driver.switch_to_frame("mid2") 

你正在运行到的问题是,JavaScript可以只与它看到当前帧的工作。 mid2位于子框架中,它不能看到您是否位于文档的顶部。

+0

谢谢。但问题是框架'名称'不是'mid2'的父框架。 'mid2'是ID为'01'的子框架集的一部分。 – user3294195