电器网站建设,搜索引擎优化策略包括,免费下载大都会,台州椒江区建设局网站Appium简介
正如主页所述#xff0c;Appium的目标是支持许多不同平台#xff08;移动、Web、桌面等#xff09;的UI自动化。
不仅如此#xff0c;它还旨在支持用不同语言#xff08;JS、Java、Python等#xff09;编写的自动化代码。
将所有这些功能组合到一个程序中是…Appium简介
正如主页所述Appium的目标是支持许多不同平台移动、Web、桌面等的UI自动化。
不仅如此它还旨在支持用不同语言JS、Java、Python等编写的自动化代码。
将所有这些功能组合到一个程序中是一个非常艰巨的任务如果不是不可能的话
为了实现这一目标Appium有效地分为四个部分
Appium核心 - 定义核心API驱动程序 - 实现与特定平台的连接客户端 - 用特定语言实现Appium的API插件 - 更改或扩展Appium的核心功能
因此要开始使用Appium进行自动化您需要
安装Appium本身为目标平台安装一个驱动程序为目标编程语言安装一个客户端库可选安装一个或多个插件
这些是基础知识如果您准备好开始可以继续查看快速入门
如果您希望了解更多有关其工作原理的详细信息请参阅以下页面以获取背景材料
Appium核心Appium驱动程序Appium客户端
Appium工作原理
正如主页所述Appium是一个开源项目和相关软件生态系统旨在简化许多应用平台的UI自动化。随着Appium 2的发布Appium有以下主要目标
使平台特定的自动化功能在跨平台的标准API下可用。允许从任何编程语言轻松访问此API。提供工具以便方便地共同开发Appium扩展。
因此无论您了解哪个应用平台比如iOS或AndroidAppium都希望开发人员和测试人员能够按照单一、统一的API编写该平台的UI自动化代码。基于Appium的目标我们需要回答许多问题以使所有这些都能正常工作
“单一、统一”的API应该是哪个我们如何将该API映射到特定平台的自动化行为我们如何使该API可通过多种流行的编程语言轻松访问
在这里还有一个更大的问题潜伏在背后因为除了iOS和Android之外还有更多的应用平台
我们如何为所有平台启用自动化
探索Appium对这些问题的回答可能不是了解Appium的最快方式但肯定是一个很好的方式所以让我们深入研究。
Appium客户端简介
如主要概览中所讨论的那样Appium基于W3C WebDriver规范。
这意味着Appium实现了一个客户端-服务器架构。服务器由Appium本身以及您用于自动化的任何驱动程序或插件组成连接到测试设备并实际负责在这些设备上执行自动化。
客户端由您Appium测试作者驱动负责通过网络向服务器发送命令并接收服务器的响应。
这些响应可用于判断自动化命令是否成功或可能包含您查询应用程序状态的信息。这份文档是对此方程式中客户端部分的概念性介绍。 有关方程式的服务器端即Appium如何实际控制设备的更多信息请查看我们的Appium驱动程序简介。要跳转到Appium客户端库链接列表请查看客户端列表。 有哪些自动化命令可用这取决于您在任何给定会话中使用的特定驱动程序和插件。
例如标准的命令集可能包括以下内容 查找元素 点击元素 获取页面源码 获取屏幕截图
如果您查看WebDriver规范中的这些命令您会注意到它们并没有根据任何特定的编程语言定义。
它们不是Java命令、JavaScript命令或Python命令。
相反它们构成了一个HTTP API的一部分可以从任何编程语言或没有如果您愿意可以只使用cURL中访问。
因此例如查找元素命令对应于发送到HTTP端点/session/:sessionid/element的HTTP POST请求在这种情况下:sessionid是服务器在先前调用Create Session时生成的唯一会话ID的占位符。
这些信息主要对于开发与WebDriver规范兼容的技术的人员是有用的。对于试图编写Appium或Selenium测试的人来说这并不特别有用。在编写Appium测试时您希望使用熟悉的编程语言。幸运的是存在一组Appium客户端库负责与Appium服务器进行HTTP通信。它们不会直接暴露特定编程语言的HTTP细节而是为特定编程语言公开了一组“本地”命令使得对于测试作者来说就感觉像是在编写Python、JavaScript或Java。
例如以下是相同的一组简单的Appium命令使用每种语言的推荐Appium客户端绑定请注意这不是包含所有适当导入的工作示例代码请参阅每个客户端库的设置和命令参考文档
const element await driver.$(//*[textFoo]);
await element.click();
console.log(await element.getText())
console.log(await driver.getPageSource())这些脚本尽管使用不同的编程语言编写但在底层执行的是相同的操作
使用xpath作为using参数使用表达XPath查询的值参数调用Find Element。如果您对这些术语感到困惑您可能会发现介绍Appium或Selenium的内容很有用使用上一步调用中找到的元素的ID调用Click Element。使用相同元素的ID调用Get Element Text并将其打印到控制台。调用Get Page Source检索页面/应用源代码并将其打印到控制台。
在选择或使用客户端之前需要注意的另一件事是每个客户端都是独立维护的。仅因为一个客户端中有某个功能并不意味着另一个客户端也有尽管所有客户端至少支持标准的W3C协议以及任何常见的Appium扩展。仅因为一个客户端具有一套不错的辅助函数并不意味着另一个客户端也有。有些客户端保持非常频繁的更新而其他客户端则没有因此在选择库时首要考虑的是要使用的编程语言其次考虑的是库的功能齐全程度和维护情况如何
要了解如何使用Appium客户端请访问该客户端的主页以获取更多信息。在许多情况下给定语言的Appium客户端是建立在该语言的Selenium客户端之上的因此某些Appium客户端可能仅记录在Selenium客户端之上添加的功能。总之为了获取完整的参考信息您可能需要同时访问Appium客户端文档和Selenium客户端文档。
这就是关于Appium客户端的所有需要知道的内容请转到客户端页面查看当前客户端列表。