我正在尝试将OpenTest与使用Dojo工具包的IBM创建的web应用程序一起使用。dojo的问题是它每次都会动态生成id,所以它们不能用作定位器。此外,许多元素没有xpath,因此也不能使用xpath。
当我搜索"dojo“和"selenium”时,这似乎是一个常见的问题,但我还没有找到任何解决方案。
其他测试工具具有对特定框架(例如dojo)的“显式”支持,因此我认为它在技术上是可行的。
发布于 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选择器来查找单元格,希望它能有所帮助:
[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);
}https://stackoverflow.com/questions/57362893
复制相似问题