如何在java中使用selenium在两个或多个chrome浏览器窗口(而不是选项卡)之间切换?

bn31dyow  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(504)

这是我想做的代码。我在用户x上做了一些事情,然后再次调用openbrowser()方法,我登录到用户y并做了一些事情,现在我想再次切换到x用户chrome浏览器,以便执行下一步操作。

public static void openbrowser() {
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--disable-notifications");
    System.setProperty("webdriver.chrome.driver", "/home/chromedriver");
    driver = new ChromeDriver(options);
    driver.manage().window().maximize();
    driver.manage().deleteAllCookies();
    driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}

public static void navigateAppUrl(int row, int column) throws Exception {
    driver.get(excel.readData(row , column));
}

public static void LogintoXUser() {
    //Do some stuff//
}

public static void LogintoYUser() {
    //Do some stuff//
}

public static void main(String args[]){
    openbrowser();
    navigateAppUrl(1,2);
    LogintoXUser()

    // new chrome browser instance is created 
    openbrowser();
    navigateAppUrl(1,2);
    LogintoYUser()
}
6yoyoihd

6yoyoihd1#

变更方法 openbrowser()WebDriver . 您可以创建更多的webdriver示例并任意使用它们。

public static WebDriver openbrowser() {
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--disable-notifications");
        System.setProperty("webdriver.chrome.driver", "/home/chromedriver");
        WebDriver driver = new ChromeDriver(options);
        driver.manage().window().maximize();
        driver.manage().deleteAllCookies();
        driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        return driver;
    }

    public static void main(String args[]){
        WebDriver driver1 = openbrowser();
        // do some staff with driver1

        WebDriver driver2 = openbrowser();
        // do some staff with driver2

       // continue with some staff with driver1
       driver1....

       // continue with some staff with driver2
       driver2....

    }

相关问题