如何遍历iFrame中的不同帧?

时间:2014-09-16 13:01:07

标签: java iframe selenium selenium-webdriver frame

我有一个下面给出的iframe,我可以遍历iframe,但不能执行任何操作,如遍历或单击框架集内的其他组件或框架。 如何单击框架集内的框架/元素?

<iframe id="selector_window" name="selector_window" src="/webadmin/webeditor/selectormanager_wcm.jsp? width="750" height="450">
<html><head>
<meta http-equiv="pragma" content="no-cache">
</head>
<frameset rows="*,100" border="1" bordercolor="Gray">
    <frameset cols="200,200,200" border="1" bordercolor="Gray">
        <frame name="selectorlistfilter" src="blank.html" frameborder="1">
        <frame name="selectorlist" src="blank.html" frameborder="1">
        <frame name="selectorpreview" src="blank.html" frameborder="1">
    </frameset>
    <frame name="selectorinsert" src="blank.html" marginwidth="2" marginheight="2" frameborder="0">
</frameset>
</html>
</iframe>         

2 个答案:

答案 0 :(得分:5)

切换到任何框架元素,只需使用driver.switchTo().frame("framename");

一旦我们切换到一帧,如果我们需要切换到另一帧,我们必须切换到父帧。为此使用

driver.switchTo().parentFrame();

如果您使用driver.switchTo().defaultContent();,则可能无效。  所以去driver.switchTo().parentFrame();,它运作正常。

答案 1 :(得分:2)

In selenium always follow the sequence. From parent->child1->child2 and again 
Webdriver parent = driver.switchTo().frame(0);
Webdriver child1 = driver.switchTo().frame(1);
Webdriver child2= driver.switchTo().frame(2);
going back to parent 

driver.switchTo().frame(1)
driver.switchTo().defaultcontent();