【发布时间】:2013-09-18 14:39:17
【问题描述】:
我正在尝试在具有嵌套框架的页面上导航。页面结构如下:
<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();
我错过了什么吗?
框架结构无法更改……很遗憾。
【问题讨论】:
-
我猜这不是 IFrame 问题。相反,没有执行附加到点击的 JS。我建议选择 id 为
link01的元素的外部/内部元素,然后尝试单击它,或通过 Javascript 模拟单击。 -
嗯,有趣!它的工作原理是不使用 WebElement 的 click() 方法,而是执行以下 js:
((JavascriptExecutor) driver).executeScript("document.getElementById('link01').click();");感谢您的建议!那么它似乎是一个硒错误。 -
将
标签: selenium selenium-webdriver integration-testing