如何使用 Selenium WebDriver 在新选项卡(chrome)中打开链接?

新手上路,请多包涵
System.setProperty("webdriver.chrome.driver", "D:\\softwares\\chromedriver_win32\\chromedriver.exe");

WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("https://mail.google.com/");
String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,Keys.RETURN);
driver.findElement(By.linkText("www.facebook.com")).sendKeys(selectLinkOpeninNewTab);

新选项卡正在打开,但 URL 链接未打开。

原文由 nlogn 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 697
2 个回答

我检查了下面的代码,它对我来说很好。我从 这里 找到了答案。

     driver = new ChromeDriver();
    driver.manage().window().maximize();

    String baseUrl = "http://www.google.co.uk/";
    driver.get(baseUrl);
    driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");

    ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
    driver.switchTo().window(tabs.get(1)); //switches to new tab
    driver.get("https://www.facebook.com");

    driver.switchTo().window(tabs.get(0)); // switch back to main screen
    driver.get("https://www.news.google.com");

原文由 Abdul Hameed 发布,翻译遵循 CC BY-SA 4.0 许可协议

以下代码适用于 Selenium 3 和 chrome 版本 58。

     WebDriver driver = new ChromeDriver();
    driver.get("http://yahoo.com");
    ((JavascriptExecutor)driver).executeScript("window.open()");
    ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
    driver.switchTo().window(tabs.get(1));
    driver.get("http://google.com");

原文由 nur 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题