我正在一个有弹出窗口的页面上工作。我想测试所有弹出窗口上所有HTML元素的可用性。所以知道当前的帧号。是否有任何可用的方法,例如Selenium.getFrameNumber()
或类似的东西,这样我可以使用
Selenium.switchTo().frame(0); or Selenium.switchTo().defaultContent();
最佳答案
在我做的一个项目中,我使用ArrayList来跟踪窗口。
List<String> windowList = new ArrayList<String>();
windowList.add( driver.getWindowHandle() );
初始窗口始终填充列表中的第一个条目,并且永不更改。
随后的窗口将添加到列表的末尾,如下所示:
driver.clickButtonToOpenPopup();
windowList.add( driver.getWindowHandle() );
然后,当关闭一个或多个弹出窗口或选项卡时,与打开窗口相比,我按顺序递减列表。
pos = windowList.size();
if ( pos > 1 && driver.closeCurrentWindow() && windowList.remove() ) {
log.info( "Closed window at position #" + pos );
} else {
log.info("There was a problem closing the window.");
}
您可以通过许多不同的方式来做到这一点。
如果要再次执行此操作,则可以使用ArrayDeque class。
关于java - Selenium :如何知道当前的帧数或值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25177674/