Selenium一个驱动程序和多个标签浏览器

时间:2018-03-09 05:36:55

标签: java selenium selenium-webdriver

当我使用下面的代码时,下一个标签将替换第一个:

ArrayList tabs = new ArrayList (driver.getWindowHandles());
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
//driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"\t");
driver.switchTo().window((String) tabs.get(0));
driver.navigate().to("https://yahoo.com");


String currentTab = driver.getWindowHandle();
Robot r = new Robot();
r.keyPress(KeyEvent.VK_CONTROL); 
r.keyPress(KeyEvent.VK_T); 
r.keyRelease(KeyEvent.VK_CONTROL); 
r.keyRelease(KeyEvent.VK_T);    
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
    for (String tab : driver.getWindowHandles()) {
            driver.switchTo().window(tab);        
    }
driver.navigate().to("https://yahoo.com");

当我使用新驱动程序时,会为我打开一个新的浏览器窗口。是否可以在下一个标签中打开链接(不一样)?我尝试了不同的方法。一个新窗口总是向我打开,或者下一个选项卡被替换为前一个选项卡,而不是打开另一个选项卡。

1 个答案:

答案 0 :(得分:0)

如果您只想查看在新标签页中打开的链接,可以使用driver.switchTo().window();

但是,如果您考虑在同一浏览器窗口中的同一WebDriver对象中运行多个线程,则无法实现。

我建议启动多个WebDriver个实例,这些实例会产生多个浏览器窗口。