testing - Selenium (Java) - 如何单击链接然后测试窗口是否打开?

标签 testing selenium-webdriver cucumber

我曾经做过一个项目,其中我显示了一个名称列表及其对应的超链接,每个超链接文本都不同,所以它看起来像这样,

  • 姓名 1 ( http://somesite.com/name1 )
  • 姓名 2 ( http://somesite.com/name2 )
  • 姓名 3 ( http://somesite.com/name3 )
  • 姓名 4 ( http://somesite.com/name4 )
  • 使用下面的代码行,我可以获得所需的元素,

    arg1 = "http://somesite.com/name3"
    WebElement urlElement = driver.findElement("//a[contains(text(), '" + arg1 + "')]");
    

    有了这个,我就得到了 urlElement。现在,当我点击 urlElement 时,

    urlElement.click();
    

    我期待它打开窗口,以便稍后在链接下,我可以调用,

    driver.switchTo().window("opened window title")
    

    我原以为这会起作用,但由于某种原因,它未能说明这些不是该标题的窗口。

    最佳答案

    urlElement.click();   
    Set<String> winids = driver.getWindowHandles();  
    System.out.println("Total number of windows/tabs are:" +winids.size());  
    String mainWindow = winids.iterator().next();  
    String childWindow = winids.iterator().next();  
    System.out.println(mainWindow);   
    System.out.println(childWindow);        
    driver.switchTo().window(childWindow);
    

    我希望这对你有用..

    它只是在窗口之间切换。你想测试获取窗口的标题并与预期的窗口标题进行比较

    关于testing - Selenium (Java) - 如何单击链接然后测试窗口是否打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20405901/

    相关文章:

    testing - 等价划分,这是书中的错误示例吗?

    svn - 使用SVN寻找网站测试架构

    java - Selenium (2.29.1) 悬停在 Firefox (18.01) 下

    ruby-on-rails - 使用 open_id_authentication 插件时,如何在 RSpec 用户故事/Cucumber 中伪造 OpenID 登录

    javascript - 在 Jasmine 1.3 中添加自定义匹配器 - 显示未定义

    testing - 使用js的truffle测试, `contract `后面的参数怎么设置?

    java - 如何在关键字驱动和数据驱动框架中实现TestNG?

    c# - 如何使用 Selenium WebDriver 将缩放重置为 Chrome 上的默认值?

    java - Cucumber Runner 类未运行步骤定义

    java - 如何将 Cucumber 中的 DataTable 转换为对象列表?