虽然我使用PHPUnit隔离和测试应用程序代码,但我们的QA团队一直在使用Selenium测试UI。我听说测试需要10个小时才能完成,我认为这太长了。然后,我的问题真的涉及如何在处理页面时等待AJAX调用。如何使用Selenium测试网页
例如,我们有一个有大量输入的页面,它会调用AJAX调用与我们的服务对话以显示数据。我们有多个输入,然后在随后的选择框被更改时对其进行过滤。
司都加载,因为是个区(属于分割),然后存储(属于区)
Division 1
+- District 10
+- Store 100
+- Store 101
+- Store 102
+- District 11
+- Store 200
+- Store 201
+- Store 202
Division 2
+- District 20
+- Store 300
+- Store 301
+- Store 302
+- District 21
+- Store 150
+- Store 151
+- Store 2002
...
现在选择框都最初加载,因此最终用户可在任何选择其中。但是,一旦选择框具有 选择,AJAX调用将根据父级的选择重新加载其他选择框。 IE:选择2区,然后 区域列表仅针对20区和21区(使用呼叫服务)进行过滤,商店列表也将 过滤为仅适用于这些区的商店。
如果您跳过选择分区,但选择一个分区,那么商店列表将被重新过滤到该分区的商店, 再次使用我们在后端的服务。
我的问题是如何知道AJAX调用何时从我们的服务返回,并且选择框已更改?我们的QA团队正在等待,然后循环选择框以检查所有返回的值是否正确。有没有办法让他们知道选择框何时重新加载,以便他们可以检查内容?
很显然,我想将这些检查的大部分移动到使用Mock对象进行的PHPUnit测试中,以验证我们的服务工作,但我们的QA团队仍然希望验证实际呈现的结果是否匹配。
任何建议,将不胜感激。
谢谢。我们遇到了元素存在的问题,但想知道它何时载入数据(请考虑选择框,它存在,并且随着之前的选择框发生变化,这个将会发生)。我想测试这个盒子何时被重新加载,它具有基于之前填充的元素的正确内容。由于元素总是存在,.FindElement不起作用,因为它在AJAX调用完成之前就已经存在了。 –
确定好友...很想帮助你...你可以发布一些已经存在的元素的HTML代码,并且在Ajax调用完成后加载数据。 – Anuragh27crony
我将不得不为您编写一些示例代码。我要求我们的QA部门。我们的页面生成,并且相当大。让我从它创建一个样本,并且我可以更新原始问题。谢谢您的帮助。 –