为网站自动化生成 JavaScript 测试对象的最佳方法是什么?
What is the best way to generate JavaScript test objects for website automation
背景:该团队正在使用 C# 编写 QUnit UI 测试和浏览器自动化测试。我想创建一个可以在两者之间共享的 JSON 对象。这样,如果类名发生更改,配置文件只需要在一个地方更新。
该站点使用模板非常动态,因此这些测试对象配置文件必须在运行时创建,不能只解析静态 html。
我可以手动生成数据结构或编写一个工具来帮助我捕获 ids/类,然后修改生成的数据结构。我宁愿不手动编写代码,因为我的团队正在测试的网站有数百个控件。
这些测试将利用这些测试对象使维护更容易,因为该站点处于大量流失之下,并且我们当前的测试每天都会中断。一旦所有测试都引用相同的测试对象,就只需要修复该对象配置。
目前,我正在考虑创建一个JavaScript函数,该函数采用选择器并为该元素及其子元素生成所有属性。我可以在运行时调用传递我想要抓取、剪切和粘贴输出的控件的函数以供以后使用。有没有更好的方法来生成这些对象?
插图:
导航栏与孩子 A、B、C。可以选择一个。
<div id="nav-bar">
<div class="a selected">A</div>
<div class="b">B</div>
<div class="c">C</div>
</div>
我想创建以下代码(jQuery样式选择器(:
var nav_bar = {
selector: "#nav-bar",
children: {
a: { selector: ".a" },
b: { selector: ".b" },
c: { selector: ".c" },
}
}
然后,我可以手动添加一些特殊属性,例如 selectedItem:
var nav_bar = {
selector: "#nav-bar",
children: {
a: { selector: ".a" },
b: { selector: ".b" },
c: { selector: ".c" },
selectedItem: { selector: ".selected" }
}
}
有了它,我可以解析nav_bar对象以创建一个有用的测试对象:
var nav = createTestObject(nav_bar);
// var nav = {a: $(".a", "#nav-bar"), b: $(".b", "#nav-bar"), selectedItem: function() { return $(".selected", "#nav-bar"); }}
// Can automate a simple test at this point...could use some more helper functions
// Click b if not already selected
if(nav.b[0] != nav.selectedItem()[0])
{
nav.b.click(); // assumes clicking causes selected class to change
}
如果类".selected"发生更改,我不必在整个测试代码中进行搜索和替换,只需更新selectedItem.selector的一个配置文件即可。
提前感谢,乔
我不明白您试图通过生成测试对象来实现什么。一旦你做了nav.b.click()
你想测试b
现在是选定的类吗?
你应该考虑使用PhantomJS或使用Zombie.js进行测试。
相关文章:
- 有条件更新d3.js力图中节点的最佳方法
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- 从数组中删除元素的最佳方法是:javascript/jquery
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 列出没有 mysql 的元素的最佳方法是什么
- 在jquery库中重新定义方法的最佳方法
- Javascript,用vars创建对象的最佳方法
- 使用 jQuery 从 HTML 中获取某些值的最佳方法
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 用jasmine测试JavaScriptUI的最佳方法
- 使用javascript:在没有阻止html标记(<b>、<p>等)的情况下,阻止脚本的最佳方法
- 如果我返回表,检查 Ajax 调用是否为 200 OK的最佳方法是什么
- JavaScript - 创建可链接函数时的最佳方法是什么
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 在 JavaScript 中获取范围的随机数的最佳方法
- 在对象类上实现 jquery 作用域的最佳方法
- 将同步函数包装到承诺中的最佳方法是什么?
- 使用 MVC 删除 JavaScript 中硬编码字符串 Asp.Net 最佳方法