Selenium webdriver 如何使用selenium webdriver打开新的浏览器窗口而不关闭以前的窗口

Selenium webdriver 如何使用selenium webdriver打开新的浏览器窗口而不关闭以前的窗口,selenium-webdriver,Selenium Webdriver,我正在使用下面的代码打开新的浏览器窗口,但它正在打开同一选项卡中的链接:-(。我想打开新的浏览器窗口,清除所有cookies,而不关闭第一个窗口 ` Actions act = new Actions(driver); act.keyDown(Keys.CONTROL).sendKeys("N").build().perform(); driver.get("https://www.facebook.com");` 我也尝试过这个代码,但它没有帮到我: Rob

我正在使用下面的代码打开新的浏览器窗口,但它正在打开同一选项卡中的链接:-(。我想打开新的浏览器窗口,清除所有cookies,而不关闭第一个窗口

    `      Actions act = new Actions(driver);
    act.keyDown(Keys.CONTROL).sendKeys("N").build().perform();
    driver.get("https://www.facebook.com");`
我也尝试过这个代码,但它没有帮到我:
Robot Robot=新机器人();
robot.keyPress(KeyEvent.VK_N);
驱动程序。获取(“https://www.facebook.com”;


将显示任何帮助!!

要启动浏览器的新实例,请实现以下代码示例:

// Store the current window url
String url = driver.getCurrentUrl();

// Create a new instance to open a new window
WebDriver driver2 = new FirefoxDriver();    // Use your own browser driver that you are using

// Go to the intended page [i.e, foo or some other link]
driver2.navigate().to(foo);

// Continue your code here in the new window...

// Close the popup window now
driver2.quit();

// No need to switch back to the main window; driver is still valid.
// demonstrate that the initial driver is still valid.
url = driver.getCurrentUrl();

您可以使用以下java脚本打开新窗口:


((JavascriptExecutor)driver).executeScript(“window.open(arguments[0]),“URL to open”);

首先,打开新窗口的组合键不正确。正确的组合键应该是Control+N

当您打开新窗口时,需要聚焦到该新窗口

您可以使用下面的代码片段打开新的浏览器窗口并导航到url。这是使用
java.awt.Robot
包中的
Robot

public void openNewWindow(String url) throws AWTException {

    // Initialize the robot class object
    Robot robot = new Robot();

    // Press and hold Control and N keys
    robot.keyPress(KeyEvent.VK_CONTROL);
    robot.keyPress(KeyEvent.VK_N);

    // Release Control and N keys
    robot.keyRelease(KeyEvent.VK_CONTROL);
    robot.keyRelease(KeyEvent.VK_N);

    // Set focus to the newly opened browser window
    ArrayList <String> tabs = new ArrayList<String> (driver.getWindowHandles());
    driver.switchTo().window(tabs.get(tabs.size()-1));
    for (String windowHandle : driver.getWindowHandles()) {
        driver.switchTo().window(windowHandle);
    }

    // Continue your actions in the new browser window
    driver.get(url);
}
public void openNewWindow(字符串url)引发AWTException{
//初始化robot类对象
机器人=新机器人();
//按住控制键和N键
机器人按键(KeyEvent.VK_控制);
robot.keyPress(KeyEvent.VK_N);
//释放控制键和N键
robot.keyRelease(KeyEvent.VK_控制);
robot.keyerelease(KeyEvent.VK_N);
//将焦点设置为新打开的浏览器窗口
ArrayList tabs=新的ArrayList(driver.getWindowHandles());
driver.switchTo().window(tabs.get(tabs.size()-1));
对于(字符串windowHandle:driver.getWindowHandles()){
driver.switchTo().window(windowHandle);
}
//在新浏览器窗口中继续您的操作
获取(url);
}

感谢您的响应!!但此方法正在同一个旧选项卡中打开新链接。我想在新浏览窗口(浏览器的新实例)中打开新链接,比如说(facebook.com),而不关闭以前的窗口。这将打开一个新选项卡,但不是一个新的浏览器窗口,如问题所示。WebDriver driver2=new FirefoxDriver();我无法实例化浏览器。我使用的是TestNG framework,只实例化了一次浏览器。如果有其他解决方法,请告诉我。