如何在同一浏览器的两个选项卡中打开两个不同的URL并在它们之间切换

时间:2019-05-04 16:17:11

标签: selenium selenium-webdriver

我需要在两个不同的选项卡中打开两个不同的url,然后需要不断在它们之间进行切换,因为我的应用程序本身就是这样。

我已经提供了一些用于打开不同URL的代码以及窗口处理代码,但是它似乎无法正常工作,因为第一个选项卡将打开gmail.com,然后打开yahoo.com,第二个选项卡然后打开yahoo.com。我需要将tab1作为gmail.com,将tab2作为yahoo.com,并且还需要在脚本之间随时切换到它们。

    driver=new ChromeDriver();          
        driver.manage().window().maximize();
        driver.get("https://www.gmail.com");
        Thread.sleep(3000);
((JavascriptExecutor)driver).executeScript("window.open()");
        handlewindlow("Untitled"); //Untitled is title for new tab


}

        static void handlewindlow(String title) {
            Set<String>setHandleValues=driver.getWindowHandles();

Iterator<String> iteHandleValues=setHandleValues.iterator();    
                   while(iteHandleValues.hasNext()==true){
            String handleValue=iteHandleValues.next();
                driver.switchTo().window(handleValue);
                CurrentUrl=driver.getCurrentUrl();      
                String CurrentUrl=driver.getTitle();        
                driver.get("https://www.yahoo.com");

        }
    }

1 个答案:

答案 0 :(得分:0)

这是我要使用的逻辑。

WebDriver driver = new ChromeDriver();
driver.get("https://google.com");
String firstTab = driver.getWindowHandle();
// open yahoo in new tab        
JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("window.open('https://yahoo.com')");
// get the 2nd browser handle
for(String winHandle : driver.getWindowHandles()){
    driver.switchTo().window(winHandle);
}
String secondTab = driver.getWindowHandle();

// switching to first tab
driver.switchTo().window(firstTab);

//switching to second tab
driver.switchTo().window(secondTab);
相关问题