13 lines
1.2 KiB
TypeScript
13 lines
1.2 KiB
TypeScript
import { createDriver } from '../drivers/factory';
|
|
const sleep=(ms:number)=>new Promise(r=>setTimeout(r,ms));
|
|
const dump=async(d:any):Promise<string[]>=>[...new Set((Array.from((await d.getSource()).matchAll(/text="([^"]+)"/g)) as any[]).map(m=>m[1]).filter((t:string)=>t.trim()&&t.length<30))] as string[];
|
|
(async()=>{const d=createDriver();await d.createSession();try{
|
|
// 先关弹框(勾Do not show again再关)
|
|
const cb=await d.findElementRaw('-android uiautomator','new UiSelector().textContains("Do not show again")').catch(()=>null);
|
|
if(cb){await d.tapElement(cb).catch(()=>{});await sleep(500);}
|
|
for(const t of ['OK','Got it','Confirm','I Know','Close']){const b=await d.findElementRaw('-android uiautomator',`new UiSelector().text("${t}")`).catch(()=>null);if(b){await d.tapElement(b);await sleep(1500);break;}}
|
|
console.log('关弹框后: '+JSON.stringify(await dump(d)));
|
|
const pair=await d.findElementRaw('-android uiautomator','new UiSelector().textContains("Pair to Lock")').catch(()=>null);
|
|
if(pair){await d.tapElement(pair);await sleep(3000);console.log('点Pair to Lock后: '+JSON.stringify(await dump(d)));}
|
|
}catch(e:any){console.error('FAIL:',e.message);}finally{await d.destroySession();}})();
|