【发布时间】:2010-09-19 23:11:38
【问题描述】:
有人用 Selenium 测试过排序吗?我想验证以不同方式对表格进行排序(a-z、z-a、状态、日期等)。任何帮助将不胜感激。
/Göran
【问题讨论】:
标签: user-interface sorting selenium
有人用 Selenium 测试过排序吗?我想验证以不同方式对表格进行排序(a-z、z-a、状态、日期等)。任何帮助将不胜感激。
/Göran
【问题讨论】:
标签: user-interface sorting selenium
在用 selenium 检查之前,你必须做一些小事。将表值(排序后出现)存储在string 或array 中。
现在使用 selenium 执行排序并将新列表捕获为
string new_list= selenium.gettable("xpath");
现在比较两个值并检查它们是否相同。
【讨论】:
我在blog 上分享了一个测试应用程序排序功能的策略。您可以使用它来自动化验证应用程序排序功能的测试用例。您可以在应用程序的搜索结果页面、项目列表和报告模块等地方使用它。解释的策略不需要创建测试数据并且是完全可扩展的。
【讨论】:
您可以像这样获取字段的值:
//div[@id='sortResult']/div[1]/div (this'd be row 1 of the search result)
//div[@id='sortResult']/div[2]/div ( row 2)
(我在这里对 HTML 结构做了一些假设,但你明白我的意思......)
这些可能是非常脆弱的断言,我建议您将这些 xpath 引用锚定到外部容器元素(不是文档的根,就像许多“自动”工具所做的那样)。
当您单击排序时,值会发生变化。您必须找出这些值应该是什么。
还要注意浏览器与此类 xpath 的兼容性。他们并不总是 ;)
【讨论】:
我解决这个问题的方法是将预期的排序结果定义为一个数组,然后迭代从排序页面返回的结果,以确保它们符合我的期望。
这有点慢,但确实有效。 (实际上,我们通过这种方式设法在多个页面上发现了一些低级排序缺陷......)
【讨论】:
您可以使用 Selenium 2.0 中的 WebDriver API(目前为 alpha 版本)在排序前后使用 findElements 命令返回一个元素数组。但是,如果您要排序的内容是分页的,这会变得有点困难。
【讨论】: