0

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

<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 (2.35.0) 的 WebDriver API。以下代码运行良好,没有任何异常,它找到了正确的链接,但 click() 调用不知何故没有任何效果,并且内容没有加载到内部框架中。

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

我错过了什么吗?

框架结构不能改变......不幸的是。

4

2 回答 2

1

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

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

driver.switchTo().parentFrame();

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

于 2014-09-24T06:58:09.660 回答
0

尝试以下嵌套框架的解决方案。希望它有效

driver.switchTo().frame("WebContent").switchTo().
  frame("framesetTopContainer").switchTo().
  frame("framesetWSTopMenu").switchTo().
  frame("frameTitle");
于 2018-07-01T09:30:02.650 回答