gpt4 book ai didi

ios - UI 应用程序检查器(如 Appium 中的检查器)如何工作?

转载 作者:行者123 更新时间:2023-11-28 23:26:53 24 4
gpt4 key购买 nike

Appium 有一种方法可以使用检查器检查应用程序的 View 层次结构。我有兴趣自己 build 一个。

我知道概述答案:它使用一些网络驱动程序来完成此操作。但是怎么办?让我困惑的是,一个单独的 iOS 应用程序可以如何与另一个应用程序通信,甚至显示其屏幕。

它的底层是如何工作的?或者 iOS 应用程序如何与 UI 检查器通信以发送其屏幕截图和层次结构?

最佳答案

It puzzles me that a separate iOS app can some how communicate to another app, and show even its screen.

是的!应用程序不应该能够执行此操作。但是有一种特殊的应用程序,专为测试而构建,能够做到这一点。

完成此操作的方法是使用 Apple 的 XCUITest 框架。当您在 XCode 中编写 XCUITest 时,它会构建一个特殊的应用程序,该应用程序能够启动您的测试应用程序,然后使用 XCUITest 方法与其进行通信。这些方法允许您检查 View 中的元素。

为了创建 View 树,您从 Root View 开始并遍历 subview ,通过树遍历构建树。

通常情况下,XCUITest 应用程序会在测试脚本完成时退出,这意味着您将无法从桌面应用程序访问它以在更新时查看树。如果您编写测试脚本来运行无限循环并打开网络端口以与外部进程通信,那么现在您可以构建查看器。这正是 Appium 所做的,所以我建议您查看 appium source code也许只是使用它?

更多信息请参见 this blog post

[编辑]:哦,是的,Appium 使用 Feacebook 的 WebDriverAgent 项目作为在应用程序上运行的脚本。所以 WebDriverAgent 基本上是一个运行服务器并可以在测试期间接受命令的 XCUITest 脚本。 Appium 做了大量工作将其捆绑并打包到特殊类型的配套应用程序中,该应用程序能够访问您的应用程序,将其安装在 iOS 设备上,然后运行测试。 WebDriverAgent 有一个命令遍历 UIHierarchy 并返回整个树。

关于ios - UI 应用程序检查器(如 Appium 中的检查器)如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58391393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com