您的位置:软件测试 > 开源软件测试 > 开源功能测试工具 > Selenium
Selenium测试Ajax程序
作者:网络转载 发布时间:[ 2013/4/9 17:01:28 ] 推荐标签:

  如果我们点击Get按钮后,直接判断页面是否返回”Hello World”时,这样会出错,因为现在还没有立即返回。

  这时我们需要使用Selenium的WaitForCondition方法,这个方法会不停的去判断一个javascript表达式是否是true. 知道返回true时才继续执行。

  我们可以看到,我们需要写js表达式,如果我们需要判断的很复杂,那么些表达式也是一件很麻烦的事,同时这个方法经过我的使用,它对IE的支持不好。那么有没有更好的方法呢?

  更好的方法判断Ajax调用是否结束

  事实上我们测试Ajax程序大的麻烦,是想上面一样来判断Ajax调用是否结束,上面我们是判断页面中如果出现”Hello World”,证明Ajax已经结束了,那么什么是更好的方法呢,我们经常使用的javascript的类库是JQuery,如何判断JQuery的Ajax调用已经结束了呢?

  经过研究发现当没有ajax调用时,Jquery.active=0.

  所以,我们可以使用这个的表达式判断Ajax是否返回。

  selenium.WaitForCondition("selenium.browserbot.getCurrentWindow().jQuery.active == 0", "50000");

  是不是整个世界清静多了
image

  下面我收集了判断其它类库的Ajax活动状态

  jQuery: “jQuery.active”

  Prototype: “Ajax.activeRequestCount”

  Dojo: “dojo.io.XMLHTTPTransport.inFlight.length”

  ASP.NET AJAX:

  Javascript:

  function isInAsyncPostBack() {

  instance = Sys.WebForms.PageRequestManager.getInstance();

  return instance.get_isInAsyncPostBack();

  }

  C#

  selenium.WaitForCondition(“!selenium.browserbot.getCurrentWindow().isInAsyncPostBack()”, “1000″);

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd