无法在嵌套框架中单击Selenium

时间:2013-09-18 14:39:18

标签: selenium selenium-webdriver integration-testing

我正在尝试在嵌套框架的页面上导航。页面结构如下所示:

<frameset name="framesetContainer">
  <frame name="WebTopMenu">
  ...
  </frame>
  <frame name="WebContent">
    <frameset name="framesetTopContainer">
      <frameset name="framesetWSTopMenu">
        <frame name="frameTitle">
        ...
        </frame>
        <frame name="frameTopMenu">
        ...
        </frame>
      </frameset>
      <frameset name="framesetLeftMenuContentContainer">
        <frameset name="framesetLeftMenuContainer">
        ...
        </frameset>
        <frame name="frameContent">
        ...
        </frame>
      </frameset>
    </frameset>
  </frame>
</frameset>

导航链接位于 frameTopMenu 框架中,内容已加载到 frameContent

我正在使用Selenium的WebDriver API(2.35.0)。以下代码运行正常,没有任何异常,它找到了正确的链接,但不知何故click()调用没有任何效果,内容没有加载到内部框架。

driver.switchTo().frame("WebContent").switchTo().frame("frameTopMenu");
driver.findElement(By.id("link01")).click();

我错过了什么吗?

不幸的是,框架结构无法更改。

2 个答案:

答案 0 :(得分:0)

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

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

driver.switchTo()parentFrame();

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

答案 1 :(得分:0)

尝试以下解决嵌套框架的方法。希望它能起作用

driver.switchTo().frame("WebContent").switchTo().
  frame("framesetTopContainer").switchTo().
  frame("framesetWSTopMenu").switchTo().
  frame("frameTitle");