2011-12-19 2 views
0

Я пытаюсь использовать метод SwitchTo() для переключения на нужную форму, но я не могу этого сделать. У меня есть сложные страницы, как показано в следующем примере:Селен. Как swich для исправления фрейма

<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

ответ

2

Try ниже код:

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 –

+0

Я попытался получить доступ к кадровому индексу. Я пробовал 0 и 1, и я получил следующую ошибку: OpenQA.Selenium.NoSuchFrameException: Не удалось найти фрейм: 1 –

+0

Я думаю, что ваша структура кадра не такая, как вы думаете. Проверяется ли (X) HTML? – reinierpost

0

Попробуйте это:

driver.findElement(By.tagName("frame").name("box")); 
-1
IWebElement _eleframe = driver.FindElement(By.Id("overlayIframe")); 
     driver.SwitchTo().Frame(_eleframe); 
Смежные вопросы