2014-03-29 98 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