Appium 客户端简介
由于在 主要概述 中讨论的所有原因,Appium 基于 W3C WebDriver 规范。这意味着 Appium 实施了客户端-服务器架构。服务器(由 Appium 本身以及您用于自动化的任何驱动程序或插件组成)连接到被测设备,实际上负责在这些设备上执行自动化。客户端(由您,Appium 测试作者驱动)负责通过网络向服务器发送命令,并接收来自服务器的响应。这些响应可用于判断自动化命令是否成功,或者可能包含您查询的有关应用程序状态的信息。本文档是对该等式客户端方面的概念性介绍。
信息
有关等式服务器端(即 Appium 如何实际控制设备?)的更多信息,请查看我们的 Appium 驱动程序简介。要跳到 Appium 客户端库链接列表,请查看 客户端列表。
有哪些类型的自动化命令可用?这取决于您在任何给定会话中使用的特定驱动程序和插件。一组标准命令将包括以下内容:
- 查找元素
- 点击元素
- 获取页面源代码
- 截屏
如果您查看 WebDriver 规范中的这些命令,您会注意到它们不是用任何特定编程语言定义的。它们不是 Java 命令,也不是 JavaScript 命令,也不是 Python 命令。相反,它们构成了一个 HTTP API 的一部分,可以从任何编程语言(或没有!如果您愿意,您可以使用 cURL)访问。
因此,例如,查找元素
命令对应于发送到 HTTP 端点 /session/:sessionid/element
的 HTTP POST
请求(在这种情况下,:sessionid
是服务器在先前调用 创建会话
时生成的唯一会话 ID 的占位符)。
此信息主要对开发与 WebDriver 规范一起工作的技术人员有用。对于尝试编写 Appium 或 Selenium 测试的人员来说,它并不特别有用。当您编写 Appium 测试时,您希望使用您熟悉的编程语言。幸运的是,存在一组 Appium 客户端库1 来负责与 Appium 服务器进行 HTTP 通信。相反,它们公开了一组特定编程语言的“本机”命令,因此,对于测试作者来说,感觉就像您正在编写 Python、JavaScript 或 Java。
例如,以下是在五种不同的编程语言中使用相同的简单 Appium 命令集,使用每种语言的推荐 Appium 客户端绑定(请注意,这不是包含所有适当导入的有效示例代码;请参阅每个客户端库的说明以了解设置和命令参考)
尽管这些脚本使用不同的语言,但它们在幕后执行相同的操作
- 使用
using
参数为xpath
和表示用于查找元素的 XPath 查询的value
参数调用查找元素
。(如果您对这些术语感到困惑,您可能会发现 Appium 或 Selenium 的介绍很有用) - 使用在上一次调用中找到的元素的 ID 调用
点击元素
。 - 使用相同元素的 ID 调用
获取元素文本
,并将其打印到控制台。 - 调用
获取页面源代码
以检索页面/应用程序源代码并将其打印到控制台。
在选择或使用客户端之前需要记住的另一件事是,每个客户端都是独立维护的。仅仅因为一个客户端中提供了一个功能,并不意味着它在另一个客户端中可用(尽管所有客户端都至少支持标准 W3C 协议以及任何常见的 Appium 扩展)。仅仅因为一个客户端有一组不错的辅助函数,并不意味着另一个客户端也会有。一些客户端经常更新,而另一些则没有!因此,在考虑选择库时,第一个考虑因素是您要使用的语言,第二个考虑因素是库的功能齐全程度和维护程度!
要了解如何使用 Appium 客户端,请访问该客户端的主页以了解更多信息。在许多情况下,特定语言的 Appium 客户端是建立在该语言的Selenium 客户端之上的,因此某些 Appium 客户端可能只记录 Appium 客户端在 Selenium 客户端之上添加的功能。总而言之,要获得完整的参考,您可能需要访问 Appium 客户端文档以及 Selenium 客户端文档。
关于 Appium 客户端,您需要了解的就是这些!前往 客户端 页面查看当前的客户端列表。
-
这些库又称为“客户端”、“客户端库”或“客户端绑定”。它们的意思都是一样的! ↩