我正在使用Selenium WebDriver。每个链接都在新的浏览器窗口中打开。这对我来说不太方便。如何更改设置,让链接在新标签页中打开而不是新窗口?
我正在使用Selenium WebDriver。每个链接都在新的浏览器窗口中打开。这对我来说不太方便。如何更改设置,让链接在新标签页中打开而不是新窗口?
***Code 1***
//First tab(default tab)
driver.navigate().to("http://www.google.com");
driver.manage().window().maximize();
//second tab
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
driver.navigate().to("https://yahoo.com");
//third tab
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
driver.navigate().to("http://www.google.com");
//move to very first tab.
driver.findElement(By.cssSelector("body"))
.sendKeys(Keys.CONTROL + "\t");
// To close the current tab.
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "w");
**code 2**
driver.navigate().to("http://www.google.com");
driver.manage().window().maximize();
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_T);
Set<String> handles = driver.getWindowHandles();
List<String> handlesList = new ArrayList<String>(handles);
String newTab = handlesList.get(handlesList.size() - 1);
// switch to new tab
driver.switchTo().window(newTab);
driver.get("http://www.yahoo.com");
目前Selenium没有切换标签页的能力。因此,我们强制浏览器在新窗口中打开链接,但由于我们能够切换窗口,我们强制浏览器采用这种方法。这个问题 可能 在以后的版本中得到解决。
如果您不在意在选项卡之间切换,这是高概率事件,请在Firefox中使用以下选项:
FirefoxOptions options = new FirefoxOptions().addPreference("browser.link.open_newwindow", 3);
WebDriver driver1 = new new FirefoxDriver(options);