分类标签归档:selenium
Appium 简述
Appium 简述
appium
- 运行时的基本检查
- 节点版本(>= 4)
- CLI 参数检查
- 包含所有可用和支持的CLI参数
- 检是否有冲突和弃用
- 统一存放日志
- 统一存放npmlog, winston和appium-logger
- 启动AppiumDriver(继承Basedriver)
- 为iOS/Android/Selendroid/Fake Driver 建立会话
- 创建/删除Appium会话
- 启动baseServer (appium-express)
- 通过驱动给出的路径
appium-express (部分appium basedriver)
- 启动expr...
如何编写文档
如何编写文档
##
用于写一个 h2 头。每个文档必须以 h2 开头。
这是为了支持 appium.io 文档生成。不要使用---
下划线方法创建标题。
不要对标题使用 h1 #
或 ===
,因为目录表不支持这样(文件夹名称将用作 h1)。
副标题
###
用于编写副标题
常规标题
####
用于不出现在目录里的标题。
不要使用 h5 #####
或是 h6 ######
。
换行符
不要使用 --
或者 ---
这样的换行符。
链接
链接到 readme :
[readme](../../README.md)
链接到捐赠:
[捐赠](../../CONTRIBUTING.md)
链接到另一个...
给贡献者的风格指南
给贡献者的风格指南
感谢您对Appium的贡献!以下是我们编写javascript代码时需要遵守的准则,请确认你的提交能符合这些规范,这有利于我们合并你的代码时能保持良好的编码风格。其中最核心的准则是:使你的代码与其他代码的编码风格保持一致。
衍合(Rebasing)
每个 pull 请求中的提交(commits)都应该包含逻辑变更(logical changes)。 如果有多位贡献者,请确保他们各自都有自己的提交记录,修改作者信息不是一个好主意。合并(merge)提交必须从 pull 请求中 rebase 。
检错(Linting)
所有的代码(除了使用了 Apple 私有方法的boo...
一个开发人员对于Appium的概述
一个开发人员对于Appium的概述
在阅读这个此文档之前,请确保你已经阅读并理解了关于Appium的基本概念, 以及关于如何参与Appium贡献说明
技术愿景
Appium致力于成为一个移动JSONWP前端,实现最佳的应用自动化技术。仅此而已。我们想要采用所有不同的 但自带亮点的自动化引擎,通过制作Appium驱动程序来平滑它们的差异和瑕疵,同时将它们纳入Appium。这与 Selenium项目有异曲同工之妙。对于我们而言,我们想要每一个驱动都是一个独立的实体(单独的repo, 测试, 等等)即便它们使用共享库,这一举措会使Appium驱动程序的开发变得尽可能简单,而且不拘泥于样板。我们...
从源码运行Appium
从源码运行Appium
你想从源码运行Appium并帮助修复BUG和添加功能吗? 真棒!只需要fork工程,添加一个修改,然后发送pull请求即可! 在开始之前请阅读我们的代码风格指南(Style Guide。 在发送pull请求前请确保通过单元和功能测试;关于如何运行测试等更多信息,请继续阅读!
首先,确保你阅读README文件且按照设置说明走。
从源码配置 Appium
Appium 的配置涉及:
- Appium Server —— 在你的测试代码和设备或模拟器之间通过 Appium Server 来回发送消息
- 测试脚本 —— 任何客户端语言都可以,只要和 Appium 兼容
运行...
Settings
Settings
Settings是appium引入的一个新概念。 它们目前不是Mobile JSON Wire协议或Webdriver规范的一部分。
Settings是用来指定appium server的工作方式。
Settings有以下特点:
- 可变性,Settings在一个会话中是可以被修改的。
- 临时性,Settings只对当前会话生效,新建立的会话会被重置。
- 局限性,Settings只用来控制appium server,不能用于控制被测应用或设备。
以Android的ignoreUnimportantViews
为例。Android中可以设置ignoreUnimportantVi...
Appium 事件计时
Appium 事件计时
Appium 提供了一个能力,可以获取关于启动信息和命令执行时间的计时信息。这是由 eventTimings
这个初始化参数控制的高级功能(把这个参数设置为 true
来记录事件的计时信息)
打开这个参数,GET /session/:id
这个接口的响应结果(也就是,driver.getSessionDetails()
的响应结果,或者类似的,取决于客户端实现)中会包含 events
属性。下面是 events
属性的结构
{
"<event_type>": [<occurence_timestamp_1>, ....
跨域iFrame的自动化 同源策略会阻止Appium对和父页面不同域的iFrame进行自动化测试。
如何搭建并定制 WebDriverAgent Server
如何搭建并定制 WebDriverAgent Server
Appium 的 iOS 版本的后端用的是Facebook's WebDriverAgent。该后端是基于苹果公司的 XCTest 框架,所以也有所有XCTest 框架已知的问题。其中有些问题我们正在设法解决,有一些在现阶段可能无法解决。本文中描述的方法已经能够使您完全掌握在设备上如何构建、管理和运行WDA。通过这种方式,您可以在CI环境中对您的自动化测试进行微调,并使其在长期运行的情况下更加稳定。
重点:
- 如果使用了Appium的默认设置,则不需要如下的步骤。服务器将为您搞定一切,当然你也不能对WDA做太多控制。
- 对连接的被...