【问题标题】:How can we switch to new opened tab with webdriver我们如何使用 webdriver 切换到新打开的选项卡
【发布时间】:2014-08-11 04:04:24
【问题描述】:

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

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

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. 如何在新窗口中打开该选项卡。

【问题讨论】:

标签: selenium-webdriver webdriver


【解决方案1】:

当你的新标签打开后,你就在窗口的任何一个标签中。现在,你可以使用keys.chord(keys.ctrl,keys.tab)在标签之间切换。通过使用keys,我们可以获取键盘i/p。

【讨论】:

    【解决方案2】:

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

    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(driver,"Test Page")

    【讨论】:

    • 你用多个标签试试这个吗?我认为它适用于处理多个窗口..
    猜你喜欢
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 2017-11-15
    • 2018-12-15
    • 1970-01-01
    • 2018-02-12
    • 2015-07-10
    • 1970-01-01
    相关资源
    最近更新 更多