【问题标题】:Unable to switch focus to newtab/window in Internet Explorer using Selenium Webdriver无法使用 Selenium Webdriver 将焦点切换到 Internet Explorer 中的新选项卡/窗口
【发布时间】:2016-11-14 19:12:33
【问题描述】:

这里的问题是,我无法同时关注新选项卡/窗口,而是焦点仍然在第一个。请帮忙。

driver=new InternetExplorerDriver();
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
//driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"n");
for (String winHandle : driver.getWindowHandles()) 
{
    driver.switchTo().window(winHandle);
}
driver.get("https://google.com/");

【问题讨论】:

  • 分享您的研究对每个人都有帮助。告诉我们您尝试了什么以及为什么它不能满足您的需求。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另请参阅How to Ask
  • 我已经尝试了上面的代码,它在firefox浏览器和[link]stackoverflow.com/questions/19117747/…中提供的解决方案中运行良好

标签: java internet-explorer selenium selenium-webdriver


【解决方案1】:

IE 驱动程序不支持枚举窗口中的选项卡。此外,WebDriver 通常不支持自动“手动”打开选项卡,例如使用 Control+t 打开的选项卡。特定的驱动程序可能支持该功能,但它不是 API 合同的全球支持部分。

绝大多数时候,用户都在尝试“手动打开一个新标签,切换到它,然后自动化它”,这个用例并没有被完全考虑清楚。由于您拒绝说明为什么要执行此操作,而不是在新窗口中启动新的驱动程序实例,因此无法推测您应该采取什么行动。

【讨论】:

    【解决方案2】:

    实现您所要求的最简单的方法是遵循以下原则:

    1. 获取初始窗口的句柄。
    2. 打开新窗口。
    3. 此时获取所有打开窗口的句柄列表,并删除初始窗口句柄。
    4. 切换到上一步检索到的列表中剩余的窗口句柄。

    【讨论】:

    • 你能不能给我这个@Tom Trumper的代码
    【解决方案3】:

    试试this,打开标签后使用Java机器人切换它。以下代码使用解决您问题的相同原理。

    ArrayList<String> tabs2 = new ArrayList<String>(driver.getWindowHandles());
        System.out.println(tabs2.size());
    
        for (int i = tabs2.size()-1; i>=0; i--) {
            Thread.sleep(2000);
            driver.switchTo().window(tabs2.get(i));
            Robot robot = new Robot();
    
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_TAB);
            robot.keyRelease(KeyEvent.VK_TAB);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            System.out.println(driver.getTitle() + "i: " + i);
            driver.close();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-23
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多