无法使用Selenium Webdriver将焦点切换到Internet Explorer中的newtab / window

时间:2016-07-12 13:43:02

标签: java internet-explorer selenium selenium-webdriver

这里的问题是,我无法将注意力集中到新的标签/窗口,而是焦点仍然在第一个。请帮忙。

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/");

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

实现你所要求的最简单方法就是这样:

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

答案 2 :(得分:0)

尝试this,打开选项卡后,使用Java robot切换它。以下代码使用相同的原则来解决您的问题。

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
   cell.checkBox.hidden = NO;
   cell.checkBox.image = [UIImage imageNamed:@"check"];
}