如何在Chrome中打开新标签页并使用Selenium切换到Java中的新标签页

时间:2018-02-14 12:22:34

标签: java selenium-webdriver

这是我为打开已在Chrome中打开的新标签而编写的代码,但它仅重定向到现有标签中的第二个网址。

我想打开一个新标签并加载“www.mailinator.com”的网址

System.setProperty("webdriver.chrome.driver","D:\\Vijayalaxmi Testing\\BrowserDrivers\\ChromeDriver\\chromedriver.exe" );
    obj=new ChromeDriver();
    String baseUrl="https://www.google.co.in/";
    obj.get(baseUrl);

    obj.findElement(By.tagName("body")).sendKeys(Keys.CONTROL+"t");


    obj.get("https://www.mailinator.com/");

任何人都能帮助我吗?

2 个答案:

答案 0 :(得分:0)

使用driver.switchTo().window(tabs.get(1));打开新标签

obj=new ChromeDriver();
String baseUrl="https://www.google.co.in/";
obj.get(baseUrl);

obj.findElement(By.tagName("body")).sendKeys(Keys.CONTROL+"t");

ArrayList<String> tabs = new ArrayList<String> (obj.getWindowHandles());
driver.switchTo().window(tabs.get(1)); //switches to new tab

obj.get("https://www.mailinator.com/");

driver.switchTo().window(tabs.get(0)); // switch back to old

答案 1 :(得分:0)

您可以使用javascript

打开新标签页
public void openNewTab() {
    ((JavascriptExecutor)driver).executeScript("window.open('about:blank','_blank');");
}

如果您想在新标签中执行操作,可以使用:

driver.switchTo().window();此方法接受String作为参数。窗口句柄准确

你可以获得这样的所有句柄

driver.getWindowHandles().这将返回当前浏览器中的一组所有句柄。

要切换到新创建的标签,请遍历句柄并使用switchTo()方法,如下所示:

    Set<String> handles = driver.getWindowHandles();
    String currentWindowHandle = driver.getWindowHandle();
    for (String handle : handles) {
        if (!currentWindowHandle.equals(handle)) {
            driver.switchTo().window(handle);
        }
    }

警告:如果您有两个以上的标签,这可能会很棘手。