如何让 Appium 的检查器在 Android 本机应用程序上刷新其 UI?

How to get Appium's inspector to refresh its UI on an Android Native App?

A​​ppium 检查器卡在 UI 部分的加载动画中,不允许获取当前 UI 和元素。怎么能绕过?

我 运行 Appium 1.13.0 在 Windows 上,使用真正的 Android 设备并尝试检查 React 本机应用程序。 检查员启动应用程序并显示初始屏幕(环境选择器)并允许 inspect/select 元素,但点击后 - 它显示加载动画不会停止。 尝试刷新没有任何作用。 在设备本身上 - 应用已到达所需屏幕。

根据 Appium 的日志,点击后会发生以下情况:

[MJSONWP (6564ecbb)] Responding to client with driver.click() result: true

[HTTP] <-- POST /wd/hub/session/6564ecbb-53f5-4c97-8456-f70f6ea3d747/element/1/click 200 141 ms - 76

[HTTP] 

[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":true}

[HTTP] --> GET /wd/hub/session/6564ecbb-53f5-4c97-8456-f70f6ea3d747/source

[HTTP] {}

[MJSONWP (6564ecbb)] Calling AppiumDriver.getPageSource() with args: ["6564ecbb-53f5-4c97-8456-f70f6ea3d747"]

[HTTP] --> GET /wd/hub/session/6564ecbb-53f5-4c97-8456-f70f6ea3d747/screenshot

[HTTP] {}

[MJSONWP (6564ecbb)] Calling AppiumDriver.getScreenshot() with args: ["6564ecbb-53f5-4c97-8456-f70f6ea3d747"]

[AndroidBootstrap] Sending command to android: {"cmd":"action","action":"source","params":{}}

[HTTP] --> GET /wd/hub/session/6564ecbb-53f5-4c97-8456-f70f6ea3d747/window/current/size

[HTTP] {}

[MJSONWP (6564ecbb)] Calling AppiumDriver.getWindowSize() with args: ["current","6564ecbb-53f5-4c97-8456-f70f6ea3d747"]

[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"source","params":{}}

[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION

[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: source

A​​ppium Inspector 似乎无法获取页面源,请尝试重新启动 device/Appium 桌面并确保没有其他任何东西正在使用 adb 连接。

您还可以考虑使用提供设备 UI 检查功能的替代工具:

  1. Android Studio Layout Inspector
  2. Android Device Monitor
  3. Appium Studio

用户可以使用appium Desktop inspector中的刷新按钮来刷新显示的屏幕。您可以在顶部看到刷新按钮,如下图所示。

driver.FindElementByAndroidUIAutomator("UiSelector().text(\"任何文本\")").Click();

感谢@Dmitri T 的回复,我已经使用 Appium Studio 来检查元素 - 由于启动画面我之前无法检查这些元素(我猜)。 后来,我仍然无法通过 XPath 和其他方法找到元素,再次 - 可能是因为闪屏。

最终成功的方法是使用 FindElementByAndroidUIAutomator。得到了用法列表here,终于找到并点击了。

我知道解决方案与我原来问题的标题有点不同 - 但是这两种方法 (Appium studio + FindElementByAndroidUIAutomator) 为我的问题提供了解决方案。