w-puppeteer-uitest
Version:
A uitest package for web developer.
8 lines (7 loc) • 21.5 kB
JavaScript
/*!
* expTest v1.0.41
* (c) 2018-2021 yuda-lyu(semisphere)
* Released under the MIT License.
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("fs"),require("puppeteer"),require("jimp")):"function"==typeof define&&define.amd?define(["fs","puppeteer","jimp"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).expTest=e(t.fs,t.puppeteer,t.jimp)}(this,(function(t,e,r){"use strict";var n=Array.isArray,o="object"==typeof global&&global&&global.Object===Object&&global,i="object"==typeof self&&self&&self.Object===Object&&self,a=o||i||Function("return this")(),u=a.Symbol,c=Object.prototype,l=c.hasOwnProperty,s=c.toString,f=u?u.toStringTag:void 0;var p=Object.prototype.toString;var h="[object Null]",v="[object Undefined]",y=u?u.toStringTag:void 0;function w(t){return null==t?void 0===t?v:h:y&&y in Object(t)?function(t){var e=l.call(t,f),r=t[f];try{t[f]=void 0;var n=!0}catch(t){}var o=s.call(t);return n&&(e?t[f]=r:delete t[f]),o}(t):function(t){return p.call(t)}(t)}function d(t){return null!=t&&"object"==typeof t}var b="[object Symbol]";function g(t){return"symbol"==typeof t||d(t)&&w(t)==b}var m=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,j=/^\w*$/;function _(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}var x="[object AsyncFunction]",O="[object Function]",F="[object GeneratorFunction]",k="[object Proxy]";function S(t){if(!_(t))return!1;var e=w(t);return e==O||e==F||e==x||e==k}var A,$=a["__core-js_shared__"],P=(A=/[^.]+$/.exec($&&$.keys&&$.keys.IE_PROTO||""))?"Symbol(src)_1."+A:"";var C=Function.prototype.toString;function T(t){if(null!=t){try{return C.call(t)}catch(t){}try{return t+""}catch(t){}}return""}var z=/^\[object .+?Constructor\]$/,E=Function.prototype,M=Object.prototype,B=E.toString,N=M.hasOwnProperty,I=RegExp("^"+B.call(N).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function L(t){return!(!_(t)||(e=t,P&&P in e))&&(S(t)?I:z).test(T(t));var e}function U(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return L(r)?r:void 0}var q=U(Object,"create");var R=Object.prototype.hasOwnProperty;var V=Object.prototype.hasOwnProperty;function D(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function W(t,e){for(var r,n,o=t.length;o--;)if((r=t[o][0])===(n=e)||r!=r&&n!=n)return o;return-1}D.prototype.clear=function(){this.__data__=q?q(null):{},this.size=0},D.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},D.prototype.get=function(t){var e=this.__data__;if(q){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return R.call(e,t)?e[t]:void 0},D.prototype.has=function(t){var e=this.__data__;return q?void 0!==e[t]:V.call(e,t)},D.prototype.set=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=q&&void 0===e?"__lodash_hash_undefined__":e,this};var G=Array.prototype.splice;function H(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}H.prototype.clear=function(){this.__data__=[],this.size=0},H.prototype.delete=function(t){var e=this.__data__,r=W(e,t);return!(r<0)&&(r==e.length-1?e.pop():G.call(e,r,1),--this.size,!0)},H.prototype.get=function(t){var e=this.__data__,r=W(e,t);return r<0?void 0:e[r][1]},H.prototype.has=function(t){return W(this.__data__,t)>-1},H.prototype.set=function(t,e){var r=this.__data__,n=W(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this};var J=U(a,"Map");function K(t,e){var r,n,o=t.__data__;return("string"==(n=typeof(r=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof e?"string":"hash"]:o.map}function Q(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Q.prototype.clear=function(){this.size=0,this.__data__={hash:new D,map:new(J||H),string:new D}},Q.prototype.delete=function(t){var e=K(this,t).delete(t);return this.size-=e?1:0,e},Q.prototype.get=function(t){return K(this,t).get(t)},Q.prototype.has=function(t){return K(this,t).has(t)},Q.prototype.set=function(t,e){var r=K(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};var X="Expected a function";function Y(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(X);var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var a=t.apply(this,n);return r.cache=i.set(o,a)||i,a};return r.cache=new(Y.Cache||Q),r}Y.Cache=Q;var Z,tt,et,rt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,nt=/\\(\\)?/g,ot=(Z=function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(rt,(function(t,r,n,o){e.push(n?o.replace(nt,"$1"):r||t)})),e},tt=Y(Z,(function(t){return 500===et.size&&et.clear(),t})),et=tt.cache,tt),it=ot;function at(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o}var ut=1/0,ct=u?u.prototype:void 0,lt=ct?ct.toString:void 0;function st(t){if("string"==typeof t)return t;if(n(t))return at(t,st)+"";if(g(t))return lt?lt.call(t):"";var e=t+"";return"0"==e&&1/t==-ut?"-0":e}function ft(t){return null==t?"":st(t)}function pt(t,e){return n(t)?t:function(t,e){if(n(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!g(t))||j.test(t)||!m.test(t)||null!=e&&t in Object(e)}(t,e)?[t]:it(ft(t))}var ht=1/0;function vt(t){if("string"==typeof t||g(t))return t;var e=t+"";return"0"==e&&1/t==-ht?"-0":e}function yt(t,e,r){var n=null==t?void 0:function(t,e){for(var r=0,n=(e=pt(e,t)).length;null!=t&&r<n;)t=t[vt(e[r++])];return r&&r==n?t:void 0}(t,e);return void 0===n?r:n}var wt=/\s/;var dt=/^\s+/;function bt(t){return t?t.slice(0,function(t){for(var e=t.length;e--&&wt.test(t.charAt(e)););return e}(t)+1).replace(dt,""):t}var gt=NaN,mt=/^[-+]0x[0-9a-f]+$/i,jt=/^0b[01]+$/i,_t=/^0o[0-7]+$/i,xt=parseInt;function Ot(t){if("number"==typeof t)return t;if(g(t))return gt;if(_(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=_(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=bt(t);var r=jt.test(t);return r||_t.test(t)?xt(t.slice(2),r?2:8):mt.test(t)?gt:+t}var Ft=1/0,kt=17976931348623157e292;function St(t){return t?(t=Ot(t))===Ft||t===-Ft?(t<0?-1:1)*kt:t==t?t:0:0===t?t:0}function At(t){var e=St(t),r=e%1;return e==e?r?e-r:e:0}function $t(t){return"[object String]"===Object.prototype.toString.call(t)}function Pt(t){return t!=t}function Ct(t){let e=!1;if(function(t){return!(!$t(t)||""===t)}(t))e=!isNaN(Number(t));else if(function(t){return"[object Number]"===Object.prototype.toString.call(t)}(t)){if(Pt(t))return!1;e=!0}return e}function Tt(t){if(!Ct(t))return 0;return St(t)}function zt(t){return!!Ct(t)&&(t=Tt(t),"number"==typeof(e=t)&&e==At(e));var e}var Et=a.isFinite,Mt=Math.min;var Bt=function(t){var e=Math[t];return function(t,r){if(t=Ot(t),(r=null==r?0:Mt(At(r),292))&&Et(t)){var n=(ft(t)+"e").split("e");return+((n=(ft(e(n[0]+"e"+(+n[1]+r)))+"e").split("e"))[0]+"e"+(+n[1]-r))}return e(t)}}("round"),Nt=Bt;function It(t){if(!Ct(t))return 0;t=Tt(t);let e=Nt(t);return"0"===String(e)?0:e}function Lt(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&!1!==e(t[r],r,t););return t}var Ut,qt=function(t,e,r){for(var n=-1,o=Object(t),i=r(t),a=i.length;a--;){var u=i[Ut?a:++n];if(!1===e(o[u],u,o))break}return t},Rt=qt;function Vt(t){return d(t)&&"[object Arguments]"==w(t)}var Dt=Object.prototype,Wt=Dt.hasOwnProperty,Gt=Dt.propertyIsEnumerable,Ht=Vt(function(){return arguments}())?Vt:function(t){return d(t)&&Wt.call(t,"callee")&&!Gt.call(t,"callee")},Jt=Ht;var Kt="object"==typeof exports&&exports&&!exports.nodeType&&exports,Qt=Kt&&"object"==typeof module&&module&&!module.nodeType&&module,Xt=Qt&&Qt.exports===Kt?a.Buffer:void 0,Yt=(Xt?Xt.isBuffer:void 0)||function(){return!1},Zt=9007199254740991,te=/^(?:0|[1-9]\d*)$/;function ee(t,e){var r=typeof t;return!!(e=null==e?Zt:e)&&("number"==r||"symbol"!=r&&te.test(t))&&t>-1&&t%1==0&&t<e}var re=9007199254740991;function ne(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=re}var oe={};oe["[object Float32Array]"]=oe["[object Float64Array]"]=oe["[object Int8Array]"]=oe["[object Int16Array]"]=oe["[object Int32Array]"]=oe["[object Uint8Array]"]=oe["[object Uint8ClampedArray]"]=oe["[object Uint16Array]"]=oe["[object Uint32Array]"]=!0,oe["[object Arguments]"]=oe["[object Array]"]=oe["[object ArrayBuffer]"]=oe["[object Boolean]"]=oe["[object DataView]"]=oe["[object Date]"]=oe["[object Error]"]=oe["[object Function]"]=oe["[object Map]"]=oe["[object Number]"]=oe["[object Object]"]=oe["[object RegExp]"]=oe["[object Set]"]=oe["[object String]"]=oe["[object WeakMap]"]=!1;var ie="object"==typeof exports&&exports&&!exports.nodeType&&exports,ae=ie&&"object"==typeof module&&module&&!module.nodeType&&module,ue=ae&&ae.exports===ie&&o.process,ce=function(){try{var t=ae&&ae.require&&ae.require("util").types;return t||ue&&ue.binding&&ue.binding("util")}catch(t){}}(),le=ce&&ce.isTypedArray,se=le?function(t){return function(e){return t(e)}}(le):function(t){return d(t)&&ne(t.length)&&!!oe[w(t)]},fe=se,pe=Object.prototype.hasOwnProperty;function he(t,e){var r=n(t),o=!r&&Jt(t),i=!r&&!o&&Yt(t),a=!r&&!o&&!i&&fe(t),u=r||o||i||a,c=u?function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n}(t.length,String):[],l=c.length;for(var s in t)!e&&!pe.call(t,s)||u&&("length"==s||i&&("offset"==s||"parent"==s)||a&&("buffer"==s||"byteLength"==s||"byteOffset"==s)||ee(s,l))||c.push(s);return c}var ve=Object.prototype;var ye=function(t,e){return function(r){return t(e(r))}}(Object.keys,Object),we=ye,de=Object.prototype.hasOwnProperty;function be(t){if(r=(e=t)&&e.constructor,e!==("function"==typeof r&&r.prototype||ve))return we(t);var e,r,n=[];for(var o in Object(t))de.call(t,o)&&"constructor"!=o&&n.push(o);return n}function ge(t){return null!=t&&ne(t.length)&&!S(t)}function me(t){return ge(t)?he(t):be(t)}var je=function(t,e){return function(r,n){if(null==r)return r;if(!ge(r))return t(r,n);for(var o=r.length,i=e?o:-1,a=Object(r);(e?i--:++i<o)&&!1!==n(a[i],i,a););return r}}((function(t,e){return t&&Rt(t,e,me)})),_e=je;function xe(t){return t}function Oe(t,e){var r;return(n(t)?Lt:_e)(t,"function"==typeof(r=e)?r:xe)}var Fe=U(a,"DataView"),ke=U(a,"Promise"),Se=U(a,"Set"),Ae=U(a,"WeakMap"),$e="[object Map]",Pe="[object Promise]",Ce="[object Set]",Te="[object WeakMap]",ze="[object DataView]",Ee=T(Fe),Me=T(J),Be=T(ke),Ne=T(Se),Ie=T(Ae),Le=w;(Fe&&Le(new Fe(new ArrayBuffer(1)))!=ze||J&&Le(new J)!=$e||ke&&Le(ke.resolve())!=Pe||Se&&Le(new Se)!=Ce||Ae&&Le(new Ae)!=Te)&&(Le=function(t){var e=w(t),r="[object Object]"==e?t.constructor:void 0,n=r?T(r):"";if(n)switch(n){case Ee:return ze;case Me:return $e;case Be:return Pe;case Ne:return Ce;case Ie:return Te}return e});var Ue=Le,qe="[object String]";var Re,Ve=(Re="length",function(t){return null==t?void 0:t[Re]}),De=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");var We="\\ud800-\\udfff",Ge="["+We+"]",He="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",Je="\\ud83c[\\udffb-\\udfff]",Ke="[^"+We+"]",Qe="(?:\\ud83c[\\udde6-\\uddff]){2}",Xe="[\\ud800-\\udbff][\\udc00-\\udfff]",Ye="(?:"+He+"|"+Je+")"+"?",Ze="[\\ufe0e\\ufe0f]?",tr=Ze+Ye+("(?:\\u200d(?:"+[Ke,Qe,Xe].join("|")+")"+Ze+Ye+")*"),er="(?:"+[Ke+He+"?",He,Qe,Xe,Ge].join("|")+")",rr=RegExp(Je+"(?="+Je+")|"+er+tr,"g");function nr(t){return function(t){return De.test(t)}(t)?function(t){for(var e=rr.lastIndex=0;rr.test(t);)++e;return e}(t):Ve(t)}var or="[object Map]",ir="[object Set]";function ar(t){if(null==t)return 0;if(ge(t))return"string"==typeof(e=t)||!n(e)&&d(e)&&w(e)==qe?nr(t):t.length;var e,r=Ue(t);return r==or||r==ir?t.size:be(t).length}function ur(t){return null==t?[]:function(t,e){return at(e,(function(e){return t[e]}))}(t,me(t))}function cr(){let t,e,r=new Promise((function(){t=arguments[0],e=arguments[1]}));return r.resolve=t,r.reject=e,r}function lr(t){return"[object Array]"===Object.prototype.toString.call(t)}function sr(t){return"[object Object]"===Object.prototype.toString.call(t)}function fr(t){let e=Object.prototype.toString.call(t);return"[object Function]"===e||"[object AsyncFunction]"===e}var pr={};!function(t){var e=Object.prototype.hasOwnProperty,r="~";function n(){}function o(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function i(t,e,n,i,a){if("function"!=typeof n)throw new TypeError("The listener must be a function");var u=new o(n,i||t,a),c=r?r+e:e;return t._events[c]?t._events[c].fn?t._events[c]=[t._events[c],u]:t._events[c].push(u):(t._events[c]=u,t._eventsCount++),t}function a(t,e){0==--t._eventsCount?t._events=new n:delete t._events[e]}function u(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),u.prototype.eventNames=function(){var t,n,o=[];if(0===this._eventsCount)return o;for(n in t=this._events)e.call(t,n)&&o.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(t)):o},u.prototype.listeners=function(t){var e=r?r+t:t,n=this._events[e];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,i=n.length,a=new Array(i);o<i;o++)a[o]=n[o].fn;return a},u.prototype.listenerCount=function(t){var e=r?r+t:t,n=this._events[e];return n?n.fn?1:n.length:0},u.prototype.emit=function(t,e,n,o,i,a){var u=r?r+t:t;if(!this._events[u])return!1;var c,l,s=this._events[u],f=arguments.length;if(s.fn){switch(s.once&&this.removeListener(t,s.fn,void 0,!0),f){case 1:return s.fn.call(s.context),!0;case 2:return s.fn.call(s.context,e),!0;case 3:return s.fn.call(s.context,e,n),!0;case 4:return s.fn.call(s.context,e,n,o),!0;case 5:return s.fn.call(s.context,e,n,o,i),!0;case 6:return s.fn.call(s.context,e,n,o,i,a),!0}for(l=1,c=new Array(f-1);l<f;l++)c[l-1]=arguments[l];s.fn.apply(s.context,c)}else{var p,h=s.length;for(l=0;l<h;l++)switch(s[l].once&&this.removeListener(t,s[l].fn,void 0,!0),f){case 1:s[l].fn.call(s[l].context);break;case 2:s[l].fn.call(s[l].context,e);break;case 3:s[l].fn.call(s[l].context,e,n);break;case 4:s[l].fn.call(s[l].context,e,n,o);break;default:if(!c)for(p=1,c=new Array(f-1);p<f;p++)c[p-1]=arguments[p];s[l].fn.apply(s[l].context,c)}}return!0},u.prototype.on=function(t,e,r){return i(this,t,e,r,!1)},u.prototype.once=function(t,e,r){return i(this,t,e,r,!0)},u.prototype.removeListener=function(t,e,n,o){var i=r?r+t:t;if(!this._events[i])return this;if(!e)return a(this,i),this;var u=this._events[i];if(u.fn)u.fn!==e||o&&!u.once||n&&u.context!==n||a(this,i);else{for(var c=0,l=[],s=u.length;c<s;c++)(u[c].fn!==e||o&&!u[c].once||n&&u[c].context!==n)&&l.push(u[c]);l.length?this._events[i]=1===l.length?l[0]:l:a(this,i)}return this},u.prototype.removeAllListeners=function(t){var e;return t?(e=r?r+t:t,this._events[e]&&a(this,e)):(this._events=new n,this._eventsCount=0),this},u.prototype.off=u.prototype.removeListener,u.prototype.addListener=u.prototype.on,u.prefixed=r,u.EventEmitter=u,t.exports=u}({get exports(){return pr},set exports(t){pr=t}});var hr=pr;function vr(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=0,r=[];var n;zt(n=t)&&It(n)<0&&(t=0),t=It(t);let o=new hr;return o.get=function(){if(r.length>0){return e+=1,r.splice(0,1)[0]}return null},o.cb=function(){e-=1,e<0&&(e=0),r.length>0&&o.emit("message",r)},o.push=function(n){r.push(n),(t<=0||e<t)&&o.emit("message",r)},o.clear=function(){e=0,r=[]},o}var yr="[object Boolean]";function wr(t){return!0===(e=t)||!1===e||d(e)&&w(e)==yr;var e}function dr(t){return!!function(t){return"[object Undefined]"===Object.prototype.toString.call(t)}(t)||(!!function(t){return"[object Null]"===Object.prototype.toString.call(t)}(t)||(!!function(t){if(sr(t)){for(let e in t)return!1;return!0}return!1}(t)||(!!function(t){return!(!$t(t)||""!==t)}(t)||(!!function(t){return!!lr(t)&&0===t.length}(t)||!!Pt(t)))))}function br(t,e,r){var n=null==t?0:t.length;return n?function(t,e,r){var n=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(r=r>o?o:r)<0&&(r+=o),o=e>r?0:r-e>>>0,e>>>=0;for(var i=Array(o);++n<o;)i[n]=t[n+e];return i}(t,(e=r||void 0===e?1:At(e))<0?0:e,n):[]}async function gr(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=yt(r,"headless");wr(n)||(n=!0);let o=yt(r,"viewport");sr(o)||(o={x:0,y:0,width:800,height:600});let i=yt(r,"actions");lr(i)||(i=[]);let a=yt(r,"waitsec");zt(a)||(a=5);let u={headless:n,slowMo:20},c=await e.launch(u),l=await c.newPage();async function s(t){let e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(r=It(r),0===r){if(e=await l.$(t),dr(e))return console.log("page.$ get no result: "+t),null}else{let n=await l.$$(t);if(0===n.length)return console.log("page.$$ get no result: "+t),null;e=r<0?n[n.length+r]:n[r]}if(dr(e))return console.log("invalid ele: "+t),null;if(dr(e.boundingBox))return console.log("invalid ele.boundingBox: "+t),null;let n=await e.boundingBox();return n.cx=n.x+n.width/2,n.cy=n.y+n.height/2,n.ele=e,n}await l.goto(t),await l.setViewport(o),await l.waitFor(1e3*a),await function(t,e){let r=cr();if(!lr(t)&&!sr(t))return r.reject("rs is not an array or object"),r;let n=!1;if(sr(t)){n=!0;let e=[];Oe(t,((t,r)=>{e.push({k:r,v:t})})),t=e}fr(e)||(e=function(t){return t});let o=-1,i=[];return t.reduce((function(t,r){return t.then((function(t){i.push(t),o+=1;let a=o,u=r;return n&&(a=r.k,u=r.v),fr(e)?e(u,a):u}))}),Promise.resolve()).then((function(t){i.push(t),i=br(i),r.resolve(i)})).catch((function(t){r.reject(t)})),r}(i,(async function(t){if("wait"===t.mode)await l.waitFor(t.time);else if("resize"===t.mode)await l.waitFor(300),await l.setViewport({x:0,y:0,width:t.width,height:t.height}),await l.waitFor(300);else if("move"===t.mode)await l.waitFor(300),await l.mouse.move(t.x1,t.y1),await l.waitFor(300);else if("elemove"===t.mode){await l.waitFor(300);let e=await s(t.selector,t.nth);e&&(await l.mouse.move(e.cx,e.cy),await l.waitFor(300))}else if("elehover"===t.mode)await l.waitFor(300),await l.hover(t.selector),await l.waitFor(300);else if("drag"===t.mode)await l.waitFor(300),await l.mouse.move(t.x1,t.y1),await l.mouse.down(),await l.waitFor(300),await l.mouse.move(t.x2,t.y2,{steps:50}),await l.waitFor(300),await l.mouse.up(),await l.waitFor(300);else if("eledrag"===t.mode){await l.waitFor(300);let e=await s(t.selector,t.nth);e&&(await l.mouse.move(e.cx,e.cy),await l.mouse.down(),await l.waitFor(300),await l.mouse.move(e.cx+t.shiftx,e.cy+t.shifty,{steps:50}),await l.waitFor(300),await l.mouse.up(),await l.waitFor(300))}else if("click"===t.mode)await l.waitFor(300),await l.mouse.move(t.x1,t.y1),await l.mouse.down(),await l.mouse.up(),await l.waitFor(300);else if("eleclick"===t.mode){await l.waitFor(300);let e=await s(t.selector,t.nth);e&&(await e.ele.click(),await l.waitFor(300))}else if("dbclick"===t.mode)await l.waitFor(300),await l.mouse.click(t.x1,t.y1,{clickCount:2}),await l.waitFor(300);else if("eledbclick"===t.mode){await l.waitFor(300);let e=await s(t.selector,t.nth);e&&(await e.ele.click({clickCount:2}),await l.waitFor(300))}else if("type"===t.mode)await l.waitFor(300),await l.keyboard.type(t.str,{delay:50}),t.noEnter||await l.keyboard.type(String.fromCharCode(13)),await l.waitFor(300);else if("eletype"===t.mode){await l.waitFor(300);let e=await s(t.selector,t.nth);e&&(await e.ele.click(),await l.waitFor(50),await l.keyboard.type(t.str,{delay:50}),t.noEnter||await l.keyboard.type(String.fromCharCode(13)),await l.waitFor(300))}else if("keypress"===t.mode){await l.waitFor(300);let e=It(t.count);e<=0&&(e=1);for(let r=0;r<e;r++)await l.keyboard.press(t.key);await l.waitFor(300)}else if("elefocus"===t.mode){await l.waitFor(300);let e=await s(t.selector,t.nth);e&&(await e.ele.focus(),await l.waitFor(300))}else console.log("mode is unrecognized: "+t.mode)})),await l.waitFor(2e3);let f=await l.screenshot({encoding:"base64"});return await l.close(),await c.close(),f}async function mr(t){let e=Buffer.from(t,"base64");return(await r.read(e)).bitmap.data}async function jr(t,e){return function(t,e){if(t.length!==e.length)return 0;let r=0,n=t.length;for(let n=0,o=t.length;n<o;n++)r+=Math.abs(t[n]-e[n])/255;return r=1-Math.pow(r/n,1/3),r}(await mr(t),await mr(e))}return async function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=yt(r,"headless"),o=yt(r,"viewport"),i=yt(r,"waitsec"),a=10;var u;zt(u=r.num_web)&&It(u)>0&&(a=It(r.num_web));let c=1;Ct(r.ratio_similar)&&(c=Tt(r.ratio_similar));let l=!1;return function(t,e){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n={},o=!1,i=cr();if(!lr(t)&&!sr(t))return i.reject("rs is not an array or object"),i;let a=!1;if(sr(t)){a=!0;let e=[];Oe(t,((t,r)=>{e.push({k:r,v:t})})),t=e}let u=vr(r);return u.on("message",(function(r){if(o)return;let c,l=u.get();if(fr(e)){let t=l.key,r=l.value;a&&(t=l.value.k,r=l.value.v),c=e(r,t)}else c=l.value;c.then((t=>{n[l.key]=t})).catch((t=>{o=!0,u.clear(),i.reject(t)})).finally((()=>{u.cb(),ar(n)===t.length&&i.resolve(ur(n))}))})),Oe(t,((t,e)=>{u.push({key:e,value:t})})),i}(e,(async function(e){console.log("expTest: "+e.name);let r,a={headless:n,viewport:o,actions:e.actions,waitsec:i},u=await gr(e.url,a),s=t.readFileSync(e.fn_base64,"utf8");if(1===c)r=u===s;else{let t=await jr(u,s);r=t>=c;let e=r?" >= ":"<";console.log(`ratio[${t}] ${e} ratio_similar[${c}]`)}return r?(l||console.log("success: "+e.name),e.name):(l||(console.log("error: "+e.name),t.writeFileSync(e.name+".err.png",u,"base64")),l=!0,Promise.reject(e.name))}),a).then((()=>{console.log("[32m%s[0m","expTest success")})).catch((t=>{console.log("[31m%s[0m","expTest error: "+t)}))}}));
//# sourceMappingURL=expTest.umd.js.map