【问题标题】:How to get Appium's inspector to refresh its UI on an Android Native App?如何让 Appium 的检查器在 Android Native App 上刷新其 UI?
【发布时间】:2022-02-02 18:18:32
【问题描述】:

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

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

根据 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

【问题讨论】:

    标签: reactjs appium appium-android inspector


    【解决方案1】:

    driver.FindElementByAndroidUIAutomator("UiSelector().text(\"WHATEVER TEXT\")").Click();

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

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

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

    【讨论】:

      【解决方案2】:

      Appium Inspector 似乎无法获取页面源,请尝试重新启动设备/Appium 桌面并确保没有其他设备正在使用adb 连接。

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

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

      【讨论】:

      • 感谢@dmitri-t,使用 Appium Studio 我可以再次检查元素!现在我猜问题是(并且可能是......)带有环境选择器的 SplashScreen。我无法切换它...有什么想法吗?
      • 您可以使用Explicit Waits 等待闪屏出现/不存在,查看How to use Selenium to test web applications using AJAX technology 文章以获取有关该概念的更多信息以及示例。
      • 感谢@Dmitry T.,我终于能够根据您的检查员建议找到解决方案!
      【解决方案3】:

      使用可以使用 appium 桌面检查器中的刷新按钮来刷新显示的屏幕。可以在顶部看到刷新按钮,如下图。

      【讨论】:

      • 感谢 Suban,这是我尝试的第一件事……我可以在日志中看到刷新命令,但加载动画没有改变
      猜你喜欢
      • 2020-02-11
      • 2020-03-08
      • 1970-01-01
      • 2022-12-10
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      相关资源
      最近更新 更多