Skip to content

Latest commit

 

History

History
105 lines (68 loc) · 4.15 KB

FAQ.md

File metadata and controls

105 lines (68 loc) · 4.15 KB

常见问题

更新后脚本或配置不见了怎么办

通常不是数据被删除,而是旧版本把数据保存到了启动命令所在目录。新版 npx android-midscene-automation 会默认使用固定的系统用户数据目录,并在启动时尝试从当前目录自动迁移旧数据。

默认数据目录:

Windows: %LOCALAPPDATA%\android-midscene-automation
macOS: ~/Library/Application Support/android-midscene-automation
Linux: ~/.local/share/android-midscene-automation

如果迁移后仍看不到旧数据,请在之前启动过的目录里查找 .midscene-app/script-cache.sqlite,再把 .midscene-app 复制到上面的固定数据目录。也可以设置 ANDROID_MIDSCENE_DATA_ROOT 指向原来的数据目录继续使用。

同一个 id 定位到错误输入框怎么办

如果账号框和密码框都是 id/tg_edit,只按 id 回放可能输入到第一个输入框。

建议:

  • 直接分别选择账号框和密码框录制输入。
  • 在节点详情里确认 selector 是否显示“重复 N”,以及“推荐定位”是否显示父级 + 子级。
  • 如果推荐定位不准确,展开录制步骤,手动修改父级上下文 selector。
  • 坐标点击只作为最后兜底。

点击后没有检测到页面跳转怎么办

可能原因:

  • 按钮当前禁用。
  • 账号密码不正确。
  • App 使用单 Activity,Activity 不变化。
  • 页面跳转依赖网络。

推荐:

  • 使用“等待出现”判断下个页面核心元素,或添加“等待 Activity”明确目标页面。
  • 检测到 Activity 变化时可以选择继续在当前脚本录制;也可以拆成两个脚本,再用“连接脚本”串联。
  • 单 Activity App 不要依赖 Activity 变化,应使用页面核心元素判断是否已进入目标状态。

连接脚本后为什么没有进入目标页面

  • 连接脚本列表会显示同一 App 的其他已保存脚本,不受入口 Activity 限制。
  • 连接操作本身不会点击页面或主动跳转,前面的点击、输入或启动 App 必须先让设备进入目标脚本需要的页面。
  • 目标脚本绑定了入口 Activity 时,回放会等待该 Activity;未绑定时会直接从当前画面执行。
  • 跨页面连接前建议添加“等待 Activity”或“等待出现”,便于确认页面已经切换完成。

为什么在桌面点击 App 后回放无效

部分厂商系统会限制桌面或启动器页面的控件信息,Appium 可能无法获取桌面图标的稳定 id。此时在桌面录制“点击 App 图标”可能无法回放。

建议在开始节点后添加“启动 App”操作,由系统按包名打开目标 App,替代桌面点击图标。需要重置登录态或缓存时,可以先添加“清理 App 缓存”,再添加“启动 App”。

弹窗只出现一次怎么办

使用“判断存在”。

判断存在 确认按钮
  是 -> 点击 确认按钮
  否 -> 不添加操作

不要直接把弹窗确认按钮作为普通必选点击,否则弹窗不出现时脚本会失败。

什么时候用等待 Activity

适合多 Activity App。

如果 App 是单 Activity 架构,优先用:

等待出现 页面核心元素

什么时候用可选步骤

可选步骤适合非主流程阻塞项:

  • 权限弹窗
  • 协议弹窗
  • 活动弹窗
  • 首次引导

不建议把登录按钮、提交按钮、核心断言设置为可选。

回放时出现 UiAutomation not connected 怎么办

组件树刷新和 Appium 回放不能同时占用 UiAutomation。当前版本会在回放期间暂停组件树自动刷新,并在断开时清理残留抓取进程后重试一次。

如果仍然失败:

  1. 确认手机保持解锁,USB 调试授权没有失效。
  2. 确认 Appium 和 UiAutomator2 Driver 已正常启动。
  3. 停止其他正在抓取同一设备组件树的工具。
  4. 重新连接设备后再次回放。

设备预览或组件树没有更新怎么办

  1. 先确认设备仍显示在设备下拉框中。
  2. 点击设备预览刷新按钮重新获取画面。
  3. 点击“刷新组件树”重新抓取页面结构。
  4. 回放期间组件树自动刷新会暂停,回放完成后会自动恢复。