2011-12-19 39 views
0

我想使用SwitchTo()方法切换到需要的窗体,但我不能这样做。 我有一个复杂的页面,像下面的例子:硒。如何开关来纠正帧

<frameset> 
    <frameset> </frameset> 
    <frame name="mbframe"> 
     <frameset> 
      <frame> 
       <frameset> </frameset> 
       <frame name = "box"> </frame> 
       <frame id="messages"> 
         <frame name="box"> 
         !!! I need to access this frame 
         </frame> 
       </frame> 
       </frame> 
     </frameset> 
    </frame> 
</frameset> 

请指教。

+1

并在框架上负载存在或它呈现一个事件? – CBRRacer 2011-12-21 02:20:41

回答

2

尝试以下代码:

driver.switchTo().frame("mbframe") 
     .switchTo().frame("box") 
     .switchTo().frame("messages") 
     .switchTo().frame("box"); 

//Do your operations here 

//Come out of that frame - It will point to the top frame 
driver.switchTo().defaultContent(); 
+0

谢谢你的回应,但这没有帮助。我收到一个异常: OpenQA.Selenium.NoSuchFrameException:无法找到帧:mbframe – 2011-12-20 17:21:59

+0

我试图访问逐帧索引。我试过0和1,我得到了以下错误: OpenQA.Selenium.NoSuchFrameException:无法找到帧:1 – 2011-12-20 18:49:24

+0

我认为你的帧结构不是你认为的那样。 (X)HTML是否验证? – reinierpost 2012-11-02 06:57:44

0

尝试这种情况:

driver.findElement(By.tagName("frame").name("box")); 
-1
IWebElement _eleframe = driver.FindElement(By.Id("overlayIframe")); 
     driver.SwitchTo().Frame(_eleframe);