当前位置: 首页 > 面试题库 >

如何使用带有Java的Selenium WebDriver关闭特定窗口?

别兴国
2023-03-14
问题内容

我使用Selenium WebDriver。我打开第一页,然后打开第二页-
执行一些操作,然后返回第一页。在我想关闭第二页之前,我使用了命令driver.close();,但是它关闭了第一页而不是第二页。如何使Selenium关闭特定窗口?

部分代码

String HandleBefore = driver.getWindowHandle();

 driver.findElement(By.xpath("...")).click();
 for (String twohandle : driver.getWindowHandles()) {
        driver.switchTo().window(twohandle);
    }       
 driver.findElement(By.linkText("001")).click();
 driver.close();

问题答案:
    String base = driver.getWindowHandle();

    Set <String> set = driver.getWindowHandles();

    set.remove(base);
    assert set.size()==1;

    driver.switchTo().window(set.toArray(new String[0]));

    driver.close();
    driver.switchTo().window(base);

这对我有用…



 类似资料:
  • 我对Java还很陌生,我试着查了一下,但没有找到任何有用的东西。我想知道我怎么能检测到一个特定的窗口关闭了?我一直在使用windowClosing(),但这适用于关闭的任何窗口,因此如果窗口B关闭,我希望由于窗口a关闭而发生的事件也会发生。我如何只在窗口A关闭的情况下进行检测?抱歉,如果这是一个糟糕的措辞,我不知道那么多Java术语。提前致谢:)

  • 问题内容: 我想使用TestNG以特定顺序运行Selenium WebDriver(Java)测试类。 例如。我有3个类,例如Test1,Test2和Test3。我要按Test2,Test1和Test3的顺序运行。是否可以不分组? 我尝试了以下方式,但是我以其自己的顺序(字母顺序)运行。 还有其他方法吗?如果没有分组,这可能吗? 问题答案: 只需使用 preserve-order =“ true”

  • 作为Java的新手,多年的iOS和。NET的经验,我发现这是非常令人困惑。我想要的是一个非常简单的对话框(从主窗口调用),带有OK和Cancel按钮。单击“确定”时,它会执行一些操作,然后关闭对话框。单击“取消”时,它只会取消对话框。 然而,使用SWT shell对话框类来实现这一点并不明显。如何获得一个按钮来关闭对话框,并将执行返回到主窗口?

  • 问题内容: 在Swing中,您可以简单地用于在关闭窗口时关闭整个应用程序。 但是,在JavaFX中找不到等效项。我有多个打开的窗口,如果一个窗口关闭,我想关闭整个应用程序。用JavaFX做到这一点的方法是什么? 编辑: 我了解可以覆盖以在窗口关闭时执行一些操作。问题是应该执行什么操作才能终止整个应用程序? 类中定义的方法不执行任何操作。 问题答案: 当最后一个关闭时,应用程序自动停止。目前,您的类

  • 问题内容: 我有一个按钮添加到JTabbedPane添加到JPanel与这样的事情: 我想在按钮按下时关闭窗口。我尝试这样做: 但这给了我 我如何在按下按钮时关闭窗口 问题答案: 获取顶层窗口: 确保已将JFrame的默认关闭操作设置为(首选)或(首选)。 如果有可能会从JMenuItem调用此方法,那么除非您首先测试组件的父级是JPopupMenu还是JToolBar,否则它将不起作用。如果是这

  • 我有一个python脚本,它每小时从网站上删除数据。它目前存储在服务器上,并且运行良好,因为我正在使用任务调度程序来安排它每小时执行脚本。 我正在使用此代码 要退出浏览器窗口 我的问题是,每当我不登录服务器时,它都会开始堆叠网络驱动程序窗口,因为当我登录服务器时,driver.quit() 函数不知何故不起作用。每天早上上班时,我都有大量的窗口要关闭服务器。 我试图退出、关闭、处置,但无济于事。我