我正在制作一个有一些弹出窗口的页面。我想测试所有弹出窗口上的所有HTML元素可用性。所以要知道当前帧号。有没有像Selenium.getFrameNumber()
这样的方法可以使用
Selenium.switchTo().frame(0); or Selenium.switchTo().defaultContent();
答案 0 :(得分:3)
没有可用的默认选项,但您可以通过不同方式获得此选项,
将iframe列表存储在页面中
List<WebElement> myIframes= driver.findElements(By.tagName("iframe"));
并且您可以迭代以使用其ID获取所需的帧。
你可以获得总数。框架,
myIframes.size();
答案 1 :(得分:2)
在我制作的一个项目中,我使用了一个ArrayList来跟踪窗口。
List<String> windowList = new ArrayList<String>();
windowList.add( driver.getWindowHandle() );
初始窗口始终填充列表中的第一个条目,永远不会更改。
后续窗口会添加到列表的END中,如下所示:
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。