import * as dotenv from 'dotenv'; import * as path from 'path'; dotenv.config({ path: path.resolve(__dirname, '../.env') }); import { createDriver } from '../drivers/factory'; import { navigateToAddPage } from '../utils/common/navigation.helper'; import { sleep } from '../utils/common/element.helper'; // 下滑添加页,逐屏找含 "Remote" 的文案,定位标准 Remote 入口的确切文字与位置 async function main() { const needle = process.argv[2] || 'Remote'; const driver = createDriver(); await driver.createSession(); try { await navigateToAddPage(driver, 'Device'); await sleep(2500); for (let i = 0; i <= 10; i++) { const src = await driver.getSource(); const hits = Array.from(src.matchAll(/text="([^"]*)"/g)).map((m) => m[1]) .filter((t) => t && t.toLowerCase().includes(needle.toLowerCase())); console.log(`屏#${i} 命中"${needle}":`, hits.length ? Array.from(new Set(hits)).join(' | ') : '(无)'); // 命中精确 needle 就停 const exact = await driver.findElementRaw('-android uiautomator', `new UiSelector().text("${needle}")`); if (exact) { console.log(`>>> 屏#${i} 找到精确 text("${needle}")`); break; } await driver.scrollDown(700); await sleep(1200); } } finally { await driver.destroySession(); } } main().catch((e) => { console.error('ERR:', e.message); process.exit(1); });