Selenium无法识别嵌套iFrame中的元素

时间:2011-12-01 21:23:26

标签: selenium

我正在使用Selenium Server来测试基于小部件的网页。所有小部件都包含在iFrame中,每个小部件都包含自己的iFrame。我正在尝试操作标题指定的特定小部件中的元素,但Selenium似乎无法识别第二个iFrame之后的任何内容。

小部件的标题位于第一个iFrame中,我需要使用它来确定接下来要选择的iFrame。我用来选择框架的代码如下所示:

selenium.selectFrame("css=div.widgetheader:contains(TITLE)+widgetbody iFrame);

但是,当我尝试访问iFrame中的元素时,Selenium无法找到它们。

关于如何让Selenium识别第二帧中元素的任何想法?

1 个答案:

答案 0 :(得分:0)

如果您尝试输入嵌套在另一个iframe中的iframe,则必须执行2个iframe“切换”。 例如:

driver.switchTo().frame(driver.findElement(By.id("frameId1"))); //switching driver to first iframe
driver.switchTo().frame(driver.findElement(By.id("frameId2"))); //switching driver to second iframe
//Now, do your stuff.

返回初始位置(削减,使用:

driver.switchTo().defaultContent();

此外,可能会出现无法获取iframe值的情况。在这种情况下,您可以使用tagName方法。

driver.switchTo().frame(driver.findElements(By.tagName("iframe").get(0));