我们如何使用webdriver切换到新打开的选项卡

时间:2014-06-20 11:47:53

标签: selenium-webdriver webdriver

我有一个场景,比如当我点击它在新标签页中打开的链接时。使用Selenium WebDriver我们如何处理它。

据我所知,我们无法切换到新标签但是当我在网上搜索时,得到了一些以下的解决方案。

ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs2.get(1));
driver.close();
driver.switchTo().window(tabs2.get(0));

不幸的是,每个给定的解决方案都包含driver.getWindowhandles()。但是AFAIK即使浏览器有多个标签,它总是只返回一个句柄。

我的方案是,当我点击一个按钮时,它会在新标签中打开。可以请任何人提供一些解决方案

  1. 在标签或
  2. 之间切换
  3. 如何在新窗口中打开该标签。

2 个答案:

答案 0 :(得分:1)

当您的新标签页打开后,您将进入窗口的任何特定标签页。现在,您可以使用keys.chord(keys.ctrl,keys.tab)在标签页之间切换。通过使用keys,我们可以使用键盘i / p。

答案 1 :(得分:0)

根据窗口标题编写一个方法将驱动程序的句柄切换到新窗口/选项卡:

public void SwitchHandleToNewWindow(IWebdriver driver, string windowTitle)
{
    ReadOnlyCollection<string> handles = driver.WindowHandles;
    foreach(string handle in handles)
    {
       driver.SwitchTo().Window(handle);
       if(driver.Title.Contains(windowTitle))
       {
           return;
       }
     }
  }

代码很简单,因此实现也很简单。如果要切换到新选项卡,则执行以下操作:SwitchHandleToNewWindow(驱动程序,“测试页”)