使用js实现可反馈执行成功状态的web ui自动化事件

发表于:2014-4-28 10:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xiadw    来源:51Testing软件测试网博客

  webdriver提供的动作执行,如点击,有时会操作某些控件时,执行语句正常,但实际没有触发点击,原因很多,一般处理方式是使用它的execute_script方法注入js来执行(强化功能的一种方式), 但同样会存在这种情况,无法知道执行是否真的有效。
  基于js中增加一个反馈机制,可以做到对执行效果有一定程序的控制,以click为例
return(function($,elem){
$(elem).one("click",function(){window._action_confirm=true; });
try{
var evt = document.createEvent( 'MouseEvents' );
evt.initEvent('click', true, true);
elem.dispatchEvent(evt);
}catch(e){
elem.click();
}
var start_time = new Date().getTime();
while(true){
if(window._action_confirm){
return elem;
}
if((new Date().getTime())-start_time > 1500){
return null;
}
}
})(jQuery,elem)
  执行的结果如果返回null,则表示js的click执行失败(可以再次尝试框架动作的执行),否则表示执行成功
版权声明:本文出自 xiadw 的51Testing软件测试博客:http://www.51testing.com/?215196
原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号