无法在浏览器中打开新选项卡。它在同一个标​​签中加载第二个网址

时间:2017-05-26 16:46:41

标签: java selenium selenium-chromedriver

我正在尝试在浏览器中打开一个新标签页。 但是,它会在同一个标​​签中打开第二个网址。

代码:

import org.openqa.selenium.By; 
import org.openqa.selenium.Keys; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver;

public class ChromeFlock {

    public static void main(String[] args) throws Exception {       WebDriver driver;       System.setProperty("webdriver.chrome.driver", "C:\\Automation\\chromedriver_win32\\chromedriver.exe");      driver = new ChromeDriver();
        driver.manage().window().maximize();

        String baseUrl = "http://www.google.co.uk/";
        driver.get(baseUrl);

        Thread.sleep(3000);

        String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,"t");
        driver.findElement(By.tagName("body")).sendKeys(selectLinkOpeninNewTab);

        driver.get("http://www.facebook.com");  }

}

3 个答案:

答案 0 :(得分:1)

使用JavascriptExecutor如下:

((JavascriptExecutor) driver).executeScript("window.open('http://www.facebook.com');");

答案 1 :(得分:1)

也许您没有切换到新标签页,导致仅在父标签页上启动第二个链接。

您可以通过模拟按下键盘的Ctrl + t键来使用Robot类打开新选项卡。然后,您需要使用driver.switchTo()命令切换到新选项卡。

有关代码段和详细信息,请查看此Open a new tab in Selenium

答案 2 :(得分:0)

您可以使用键盘模拟:

new Actions(driver).sendKeys(Keys.Control + 'w').build.perform(); // or + 't'
driver.get("http://www.facebook.com");

或使用JavaScriptExecutor:

((JavascriptExecutor) driver).ExecuteScript("window.open('http://www.facebook.com','_blank');");