摘要: webdriver提供的动作执行,如点击,有时会操作某些控件时,执行语句正常,但实际没有触发点击,原因很多,一般处理方式是使用它的execute_script方法注入js来执行(强化功能的一种方式), 但同样会存在这种情况 ...
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原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。