首页 > 解决方案 > 通过 Selenium Webdriver (Java) 操作 Chrome 浏览器选项卡(打开、关闭、切换)

问题描述

我正在尝试为 Chrome 浏览器执行基本的浏览器选项卡操作,例如 -

  1. 打开一个新标签
  2. 切换到它
  3. 关闭标签

但是,我尝试过的所有方法都不起作用,如下所示:

  1. Selenium 中的动作类 ---actions.click(driver.findElement(By.cssSelector("body"))).keyDown(Keys.LEFT_CONTROL).sendKeys("t") .keyUp(Keys.LEFT_CONTROL).build().perform();

  2. 通过sendKeys()---driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");

我还在网上搜索了解决方案,但所有这些问题都存在 3 到 4 年,而且列出的解决方案似乎对我不起作用:(

我在用:

  1. 爪哇 8
  2. 硒 v3.141.59
  3. 铬 v80.0.3987.132
  4. webdrivermanager v3.8.1

如果您知道任何解决方案或解决方法,请回复;任何帮助将不胜感激.. :)

谢谢

标签: seleniumselenium-webdriverselenium-chromedriver

解决方案


最好的方法之一是找到元素并按下它.sendKeys();,以便在新选项卡中打开并切换到它。就像这样:

//opening in a new tab
        driver.findElement(By.id("abc")).sendKeys(Keys.chord
(Keys.CONTROL, Keys.ENTER)); 

    // adding all the tabs to set
    Set<String> tabIDs = driver.getWindowHandles(); 

// creating iterator for going through the set of your opened tabs
    Iterator<String> iterator = tabIDs.iterator(); 

// switching to the next tab
    driver.switchTo().window(iterator.next()); 

    // or you can loop it like below and iterate automatically after some actions in the each tab
    while (iterator.hasNext()) {
          driver.switchTo().window(iterator.next());
          // do something
    }

推荐阅读