首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对Dojo工具包的OpenTest支持

对Dojo工具包的OpenTest支持
EN

Stack Overflow用户
提问于 2019-08-06 00:50:11
回答 1查看 34关注 0票数 2

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

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

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

EN

回答 1

Stack Overflow用户

发布于 2019-10-31 00:20:48

这是一个网站的摘录,在这个网站上,同样的问题被问到了,OpenTest支持构建宏,这些宏就是这个人能够用.NET代码做的事情。请参考下面的区块引用以及source

我使用Selenium来测试我的web应用程序,它是由dojo/dijit和asp.net MVC构建的,到目前为止它工作得很好。

我以前也遇到过和你一样的问题。我的方式是“在编写与它们交互的步骤时,不要去想dojo小部件”。将它们视为普通的复杂html元素。在dojo解析你的widget后,你需要在客户端浏览dom树,找到dijit的value节点或交互部分对应的真实dom元素,并对其执行操作(在你的例子中是Click、SendKey或GetId )。

将小部件的一些常见操作封装到Helpers中也很好,可以在您的项目中重用。

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

代码语言:javascript
复制
       [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); 
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57362893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档