27 lines
1.0 KiB
TypeScript
27 lines
1.0 KiB
TypeScript
import { createDriver } from '../drivers/factory';
|
|
import { navigateToAddPage } from '../utils/common/navigation.helper';
|
|
|
|
const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms));
|
|
|
|
(async () => {
|
|
const d = createDriver();
|
|
await d.createSession();
|
|
await navigateToAddPage(d, 'Device');
|
|
await sleep(1500);
|
|
const found = new Set<string>();
|
|
for (let i = 0; i < 22; i++) {
|
|
const more = await d.findElementRaw('-android uiautomator', 'new UiSelector().text("Show More")').catch(() => null);
|
|
if (more) { await d.tapElement(more); await sleep(1200); }
|
|
const s = await d.getSource();
|
|
for (const x of s.match(/(?:text|content-desc)="([^"]+)"/g) || []) {
|
|
const v = x.replace(/^(?:text|content-desc)="/, '').replace(/"$/, '');
|
|
if (v && v.length < 45 && /relay|switch|plug/i.test(v)) found.add(v);
|
|
}
|
|
await d.scrollDown(500).catch(() => {});
|
|
await sleep(700);
|
|
}
|
|
console.log('=== 含 relay/switch/plug 的品类条目 ===');
|
|
console.log(JSON.stringify([...found].sort()));
|
|
await d.destroySession();
|
|
})();
|