selenium - Robot Framework 验证打开了一个新的浏览器选项卡

标签 selenium selenium-webdriver robotframework

对于我们页面上的一些网络链接,有外部链接可以引导用户说 Facebook 和 Twitter。这些链接使用 HMTL 标签 target="_blank"以便为我们的 Twitter 页面打开一个新的浏览器选项卡。

我想验证 1. 新浏览器选项卡已打开,2. 将焦点设置为它,3. 验证新浏览器选项卡中的页面元素。一旦我专注于它,#3 部分就很容易了。但是,任务 #1 和 #2,我无法弄清楚,也找不到任何人在谈论这个。

使用 Selenium2Library (WebDriver)

最佳答案

Selenium 不支持选项卡(截至 2013 年 6 月,Selenium 2.33.0)并且总是打开新窗口。如果您的测试打开了一个新标签,祝您好运。

也就是说,如果它正确打开一个新窗口,请使用 Select Window .

Select Window | url=https://twitter.com/expectedPage

我在 Java 中工作的 WebDriver (2.33.0) 代码,希望它会有所帮助。你所描述的问题是我的机器人知识开始下降的地方。

@Test
public void targetBlankLinkTest() {
    // load the website and make sure only one window is opened
    driver.get(file("TargetBlankLinkTest.html"));
    assertEquals(1, driver.getWindowHandles().size());

    // click the link and assert that a new window has been opened      
    driver.findElement(By.linkText("Follow us on Twitter!")).click();
    Set<String> windowHandles = driver.getWindowHandles();
    assertEquals(2, windowHandles.size());

    // switch to the new window and do whatever you like
    // (Java doesn't have Switch Window functionality that can select by URL.
    // I could write it, but have been using this trick instead)
    for (String handle : windowHandles) {
        if (handle != driver.getWindowHandle()) {
            driver.switchTo().window(handle);
        }
    }
    assertThat(driver.getCurrentUrl(), containsString("twitter.com"));
}

关于selenium - Robot Framework 验证打开了一个新的浏览器选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17225911/

相关文章:

python - 使 selenium 更快地运行网站列表

selenium webdriver 选择元素

python-3.x - "Eager"Python 中 Chromedriver Selenium 的页面加载策略解决方法

python - RobotFramework:为什么要用关键字/机器人框架语法编写测试?

python - 自动按钮点击 Selenium 时出现问题

selenium - 如何自动点击没有ID的按钮

java - 无法通过 Java selenium 单击表中的第一个元素

selenium - 我们如何循环不同的基本URL而不是默认基本URL并运行功能测试?

python - Robot Framework 是有状态的还是无状态的?

java - 如何在 Robot Framework 中实现 java 库