使用js實現可反饋執行成功狀態的web ui自動化事件
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
原創作品,轉載時請務必以超鏈接形式標明本文原始出處、作者信息和本聲明,否則將追究法律責任。
posted on 2014-04-29 10:54 順其自然EVO 閱讀(205) 評論(0) 編輯 收藏 所屬分類: selenium and watir webdrivers 自動化測試學習