我无法使用selenium在Google Chrome中打开新TAB

时间:2014-04-19 19:12:45

标签: selenium selenium-webdriver

这是我打开新标签页的行

 driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");

5 个答案:

答案 0 :(得分:4)

在WebDriver中使用Actions类来执行此操作。以下是示例代码:

WebDriver driver = new ChromeDriver();
driver.navigate().to("<URL>");
WebElement element = driver.findElement(By.cssSelector("body"));
Actions actionOpenLinkInNewTab = new Actions(driver);
actionOpenLinkInNewTab.moveToElement(element).keyDown(Keys.CONTROL).click(element).keyUp(Keys.CONTROL).perform();

答案 1 :(得分:4)

((JavascriptExecutor)driver).executeScript("window.open();");

此JavaScript代码会为Chrome浏览器打开一个新标签。

答案 2 :(得分:1)

以下代码适用于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");

答案 3 :(得分:0)

试试这段代码:

    Actions newTab = new Actions(webDriver);
    newTab.sendKeys(Keys.CONTROL + "t").perform();

希望它会有所帮助。

答案 4 :(得分:0)

您的代码适用于Firefoxdriver但不适用于Chromedriver。 一种解决方案是您可以在当前页面上打开任何link到新选项卡。 以下是Python代码。

actions = ActionChains(driver)
home_link = driver.find_element_by_class_name("logo")
actions.move_to_element(home_link)
actions.send_keys(Keys.CONTROL+ Keys.SHIFT)
actions.click(home_link)
actions.perform()