新标签不会使用selenium在Firefox中打开新网址

时间:2017-06-07 09:52:43

标签: java selenium selenium-webdriver

打开新标签页并在该新标签页中打开网址的代码部分不起作用。它会打开新选项卡,但会在上一个选项卡中打开新网址。有人可以帮忙吗?

public class PractiseSession1 
{
public static void main(String[] args)

{
    // TODO Auto-generated method stub
    String URL="http://www.google.com";

    System.setProperty("webdriver.gecko.driver", "D:\\Sourav Mukherjee\\BP-Oyster\\S2\\Selenium Server\\geckodriver-v0.16.1-win64\\geckodriver.exe");
    DesiredCapabilities dc = DesiredCapabilities.firefox();
    dc.setCapability("marionette", true);
    WebDriver driver =  new FirefoxDriver(dc);
    driver.get(URL);

    //Open a url in a new tab
    driver.findElement(By.cssSelector("Body")).sendKeys(Keys.CONTROL+ "t");
    driver.get("http://facebook.com/");


}
}

2 个答案:

答案 0 :(得分:0)

编辑:问题不是关于迁移到新标签页,而是直接在标签页中打开链接

您必须将驱动程序移动到新选项卡。为此,请使用this method

ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs2.get(1));
driver.close();
driver.switchTo().window(tabs2.get(0));

答案 1 :(得分:0)

以下是您的问题的答案:

要打开网址,然后再次在另一个标签页中打开第二个网址,您可以使用JavascriptExecutor。这是您自己的代码,在一个标签中打开http://www.google.com,然后在另一个标签中打开http://facebook.com/

    String URL="http://www.google.com";
    System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
    DesiredCapabilities dc = DesiredCapabilities.firefox();
    dc.setCapability("marionette", true);
    WebDriver driver =  new FirefoxDriver(dc);
    driver.get(URL);
    ((JavascriptExecutor) driver).executeScript("window.open('http://facebook.com/');");

如果这回答你的问题,请告诉我。