我有一个需要自动化的丑陋数据输入任务。问题是某些流程依赖于没有API的基于Web的Ajax服务。
iMacros(或任何其他自动化工具)的问题在于,只要宏将javascript注入页面(修改ajax回调并完成所有需要做的事情),子脚本就无法通知父脚本任务已准备就绪,让它在一个单独的线程中继续进行。如果我使用WAIT指令,可靠性将为零,并且无法实现故障保护。
我尝试过任何我能想到的东西,包括Chrome扩展程序,降低XSS浏览器安全性,甚至通过cURL& amp;复制请求PHP。其中每一个都有其自身的局限性。
我愿意接受以下任何解决方案:
任何替代方案和帮助非常感谢。
答案 0 :(得分:1)
这是一篇很好的文章,以Selenium为中心,解释了等待ajax请求完成的不同方法:http://agilesoftwaretesting.com/?p=111。
这比尝试修改现有的JS要简洁得多。可以直接从javascript调用以下任何一个,因此只要您的自动化框架支持调用javascript(Selenium / webdriver所做的),那么您只需调用这些函数,具体取决于您的网站使用的ajax库:
jQuery:“jQuery.active”
原型:“Ajax.activeRequestCount”
道场:“dojo.io.XMLHTTPTransport.inFlight.length”
只需检查以确保该值为0,然后继续。