【问题标题】:OpenTest support for Dojo toolkit对 Dojo 工具包的 OpenTest 支持
【发布时间】:2019-08-05 16:50:10
【问题描述】:

我正在尝试将 OpenTest 与使用 Dojo 工具包通过 IBM EGL 创建的 Web 应用程序一起使用。 dojo 的问题在于它每次都会动态生成 id,因此它们不能用作定位器。此外,许多元素没有 xpath,因此也无法使用。

当我搜索“dojo”和“selenium”时,这似乎是一个常见问题,但我还没有找到任何解决方案。

其他测试工具对特定框架(例如 dojo)具有“显式”支持,因此我认为它在技术上是可行的。

【问题讨论】:

    标签: dojo opentest


    【解决方案1】:

    这是一个网站的摘录,该网站提出了同样的问题,OpenTest 支持构建宏,这些宏正是这个人能够使用 .NET 代码执行的操作。请参考下面的引用以及source

    我使用 Selenium 测试由 dojo/dijit 构建的 Web 应用程序 和 asp.net MVC,到目前为止它工作正常。

    我以前也遇到过与您相同的问题。我的方式是“不要想 关于 dojo 小部件”在编写与它们交互的步骤时。对待 它们作为普通的复杂 html 元素。你需要浏览你的 dom 树 在 dojo 解析您的小部件后在客户端上,找到真实的 dom dijit的值节点或交互部分对应的元素 并对其执行操作(在您的情况下为 Click、SendKey 或 GetId)。

    把widget的一些常用动作封装到Helper中也是不错的 可以在您的项目中重复使用。

    下面是一个简单的 .NET 示例,我用来测试按钮是否存在 一个dGrid,我只是使用css选择器来查找单元格,希望对您有所帮助:

           [Then("I can delete it at row '(.*)'")] 
            public void Then_I_can_delete_it_at_row(int rowIndex) 
            { 
                var nthRow = Browser.FindElementsChecked(By.CssSelector(".dgrid-content .dgrid-row-table")).ElementAt(rowIndex - 1); 
                var deleteBtnsInRow = nthRow.FindElementsChecked(By.XPath(".//span[text() = 'Delete']")); 
                Assert.AreEqual(1, deleteBtnsInRow.Count); 
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-17
      • 2011-07-13
      • 1970-01-01
      • 2017-05-25
      • 2015-07-02
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多