我正在一个有弹出窗口的页面上工作。我想测试所有弹出窗口上所有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/

10-09 03:27