当我使用下面的代码时,下一个标签将替换第一个:
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");
当我使用新驱动程序时,会为我打开一个新的浏览器窗口。是否可以在下一个标签中打开链接(不一样)?我尝试了不同的方法。一个新窗口总是向我打开,或者下一个选项卡被替换为前一个选项卡,而不是打开另一个选项卡。
答案 0 :(得分:0)
如果您只想查看在新标签页中打开的链接,可以使用driver.switchTo().window();
。
但是,如果您考虑在同一浏览器窗口中的同一WebDriver
对象中运行多个线程,则无法实现。
我建议启动多个WebDriver
个实例,这些实例会产生多个浏览器窗口。