【问题标题】:Operate Chrome browser tabs (open, close, switch) through Selenium Webdriver (Java) [duplicate]通过 Selenium Webdriver(Java)操作 Chrome 浏览器选项卡(打开、关闭、切换)[重复]
【发布时间】:2020-06-26 16:38:38
【问题描述】:

我正在尝试为 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. Java 8
  2. 硒 v3.141.59
  3. Chrome v80.0.3987.132
  4. webdrivermanager v3.8.1

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

谢谢

【问题讨论】:

    标签: selenium selenium-webdriver selenium-chromedriver


    【解决方案1】:

    最好的方法之一是找到元素并按.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
        }
    

    【讨论】:

    猜你喜欢
    • 2014-10-20
    • 2013-12-24
    • 2017-01-13
    • 2018-12-15
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多