当前位置: 首页 > 知识库问答 >
问题:

如何在selenium webdriver中验证新标签页是否打开?

咸琪
2023-03-14

我遇到一种情况,我必须检查单击链接后是否打开了新选项卡。如果选项卡打开,我也想检查标题。

有人知道这件事吗。

共有3个答案

富念
2023-03-14

您可以使用以下方法实现所需的等待,直到选项卡完全加载。

  public static void switchTabs(WebDriver driver, int expectedWindowsCount,int SwitchtoWindow) throws Exception {
    (new WebDriverWait(driver, 30)).until(ExpectedConditions.numberOfWindowsToBe(expectedWindowsCount));
    ArrayList<String> tabs2 = new ArrayList<String>(driver.getWindowHandles());
    driver.switchTo().window(tabs2.get(SwitchtoWindow));
}

该方法将检查有多少活动窗口处理程序可用,并等待所需的处理程序出现,然后切换到选项卡。

端木兴国
2023-03-14

尝试切换到一个新的标签,然后验证它是否是正确的页面。

在Java中,它可以看起来像:

//get window handlers as list
List<String> browserTabs = new ArrayList<String> (driver.getWindowHandles());
//switch to new tab
driver.switchTo().window(browserTabs .get(1));
//check is it correct page opened or not (e.g. check page's title)
//...
//then close tab and get back
driver.close();
driver.switchTo().window(browserTabs.get(0))
司马越
2023-03-14

这与C#相同;这是经过测试的,无论链接是在新选项卡中还是在新窗口中打开,它都会起作用。

var browserTabs = driver.WindowHandles;            
driver.SwitchTo().Window(browserTabs[1]);

//check is it correct page opened or not (e.g. check page's title or url, etc.)
// ...
//close tab and get back
driver.Close();
driver.SwitchTo().Window(browserTabs[0]);

希望这能帮助任何遇到这个问题的人。

 类似资料:
  • 问题内容: 自从将近一个月以来,我一直在使用CasperJS测试框架来制作一些测试套件,但是其中之一面临着一个问题。 这是我要执行的操作:我正在浏览一个url(第1页),并且必须从另一个url(像在图形浏览器中那样模拟新选项卡)执行另一个操作,而不必退出第一个(第1页)。来自第二个URL的操作将更改我的第一个URL。希望它足够清楚:) 因此,现在,当我到达观察第一个URL的步骤时,我通过执行操作打

  • 问题内容: 我正在处理HTML项目,但是我不知道如何在没有JavaScript的情况下在新标签页中打开链接。 我已经知道可以在同一选项卡中打开链接。有什么想法可以使其在新的环境中打开吗? 问题答案: 将链接的“目标”属性设置为: (注意:我之前建议这样做,而不是因为如果使用它,它将打开一个新选项卡,如果再次单击该链接,则会使用相同的选项卡。但是,这仅是因为正如GolezTrol所指出的那样,它指向

  • 我正在做一个HTML项目,我无法找到如何在没有JavaScript的情况下打开新选项卡中的链接。 我已经知道在同一个选项卡中打开链接。有什么想法如何让它在一个新的开放?

  • 问题内容: 下面的代码在同一页面的底部创建图像。如何将图像显示在新的标签/窗口中而不是显示在同一页面中? 问题答案: 就像是:

  • 本文向大家介绍如何使用JavaScript在新标签页(而不是新窗口)中打开URL?,包括了如何使用JavaScript在新标签页(而不是新窗口)中打开URL?的使用技巧和注意事项,需要的朋友参考一下 在新选项卡中打开URL取决于浏览器和用户的浏览器首选项。您无法在代码中执行任何操作来强制严格在新选项卡中打开链接。 但是,如果您希望用户在新标签页或窗口中打开它(取决于他们的偏好),则可以将以下属性添

  • 问题内容: 我想使用Javascript在其他标签中打开新页面,但仍将重点放在当前标签上。我知道我可以这样做: 但是,当我在chrome中执行此操作时,它会闪烁新标签一会儿,然后再切换回当前标签。我想避免这种情况。 该应用程序是个人书签,因此仅需在最新的Chrome中运行。 问题答案: 更新:谷歌浏览器的版本41 似乎已更改行为。 这可以通过在属性属性设置为所需的动态生成元素上模拟+ (或打开背景