有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用java在selenium webdriver中的两个窗口之间切换

我正在使用selenium webdriver和java自动化一个应用程序。因为我必须打开一个浏览器实例&;执行一些动作。之后,我必须打开另一个浏览器实例,在其中执行一些操作&;关闭该实例。然后我必须再次将控件返回到第一个浏览器实例,以执行其他一些操作

我试着使用:

String winHandleBefore = driver.getWindowHandle();
//then open new instance and perfom the actions
driver.switchTo().window(winHandleBefore);

但这返回了一个错误:

org.openqa.selenium.remote.SessionNotFoundException: no such session

我该怎么做?有人能帮忙吗


共 (1) 个答案

  1. # 1 楼答案

    执行driver = new ChromeDriver();操作时,重新初始化了driver对象,这导致第一个窗口丢失。打开新窗口后,可以通过检查窗口句柄的数量来查看它

    WebDriver driver = new ChromeDriver();
    int len = getWindowHandles().size(); // 1 as expected
    driver = new ChromeDriver();
    len = getWindowHandles().size(); // still 1, has only the new window
    

    要解决此问题,请使用临时driver打开新窗口

    WebDriver tempDriver = new ChromeDriver();
    // do some stuff
    tempDriver.close();