appium的python客户端

Appium-Python-Client的Python项目详细描述


Appium Python客户端

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<============================756d2d507974686f6e2d436c69656e742e737667" />

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<==============================="BuiBuild StatuStatuStatuStatuStatuStatuStatuStatuStatuStatuStatus" src "src" src 4686f6e2d636c69656e742e7376673f62716e63683d6d6173746572" />

一个扩展库,用于添加selenium 3.0草稿和移动json有线协议草稿。 python语言绑定的功能,用于移动测试 框架appium

获取appium python客户端

安装和使用Appium Python客户端有三种方法。

  1. 从pypi安装 "appium-python-client"

    啊!

    您可以在这里查看历史记录

  2. 从源代码安装,通过pypi。从'appium-python-client', 下载并取消归档源tarball(appium-python-client-x.x.tar.gz)。

    啊!
  3. 通过github从源代码安装 啊!

开发

  • 风格指南:https://www.python.org/dev/peps/pep-0008/" rel="nofollow">https://www.python.org/dev/peps/pep-0008/
    • autopep8有助于自动格式化代码 啊!
    • isort有助于自动订购导入 啊!
  • 您可以定制changelog.rst
    • 它生成可读的变更日志
    < /李>
  • 设置
    • pip安装--用户pipenv
    • python-m pipenv lock—清除
      • 如果您遇到下面的错误,请参阅解决该错误的方法。 啊!
    • python-m pipenv install--dev--system
    • 预提交安装

运行测试

您可以在本地通过tox运行在CI上运行的所有测试。

啊!

您还可以运行下面这样的特定测试。

单位

AAAAAAAAA 8

使用pytest-xdist运行 啊!

功能性

啊!

与iOS并行

  1. 创建名为"iphone 6s-8100"和"iphone6s-8101"的模拟器
  2. 通过pip安装测试库 YYY11
  3. 运行测试 是啊。 < /李>

释放

遵循以下步骤。

啊!13!

用法

Appium Python客户端完全符合Selenium 3.0规范 Draft,和一些助手一起使用python进行移动测试更容易的。大多数 selenium 2(webdriver)的用法与以前一样,并且作为官方 selenium python绑定开始 实现将在下面使用的新规范,因此 可以编写两种绑定都可用的测试代码。

现在使用新功能,并使用函数的超集,而不是 在测试代码中包含seleniumwebdriver模块,使用 取而代之的是Appium。

pip install Appium-Python-Client
4

从那以后,您的大部分测试代码都将在没有更改的情况下工作。

作为以下代码示例的基础,下面设置单元测试 环境:

pip install Appium-Python-Client
5
pip install Appium-Python-Client
6

更改或添加的功能

改变的方法是…

直接连接URL

如果Selenium/Appium服务器使用以下键装饰新的会话功能响应:

  • DirectConnectProtocol
  • directconnecthost
  • 直接连接端口
  • directconnectpath

然后python客户端将其端点切换到由这些键的值指定的端点。

pip install Appium-Python-Client
7

在"本机"和"网络视图"之间切换

对于移动测试,selenium在windows之间切换的方法以前是 用于在本机应用程序和WebView上下文之间切换。方法 为此,Selenium 3规范中已明确添加了此内容,因此 转发将使用这些"上下文"方法。

获取当前上下文,而不是调用driver.current_window_handle 使用< > >

pip install Appium-Python-Client
8

不使用driver.window_handles来检索可用的上下文,而是使用

pip install Appium-Python-Client
9

最后,要切换到新上下文,而不是driver.switch_to.window(name), 使用比较上下文方法

tar -xvf Appium-Python-Client-X.X.tar.gz
cd Appium-Python-Client-X.X
python setup.py install
0

通过iOS uiAutomation搜索查找元素

这允许使用递归元素找到ios应用程序中的元素 使用uiautomation库进行搜索。iOS设备支持此方法 它仍然支持uiautomation,也就是说,在xuitest之前的版本。

添加方法驱动程序。按iOS uiAutomation查找元素 以及驱动程序。按iOS uiAutomation查找元素

tar -xvf Appium-Python-Client-X.X.tar.gz
cd Appium-Python-Client-X.X
python setup.py install
1
tar -xvf Appium-Python-Client-X.X.tar.gz
cd Appium-Python-Client-X.X
python setup.py install
2

通过android uiautomator搜索查找元素

这允许使用递归元素找到android应用程序中的元素 使用uiautomator库进行搜索。添加方法driver.find_element_by_android_uiautomator 以及驱动程序。通过Android uiAutomator查找元素

tar -xvf Appium-Python-Client-X.X.tar.gz
cd Appium-Python-Client-X.X
python setup.py install
3
tar -xvf Appium-Python-Client-X.X.tar.gz
cd Appium-Python-Client-X.X
python setup.py install
4

通过Android ViewTag搜索查找元素

此方法允许使用view tags查找元素。 此方法适用于浓缩咖啡驱动程序。

添加方法driver.find_element_by_android_viewtagdriver.find_elements_by_android_viewtag

tar -xvf Appium-Python-Client-X.X.tar.gz
cd Appium-Python-Client-X.X
python setup.py install
5
tar -xvf Appium-Python-Client-X.X.tar.gz
cd Appium-Python-Client-X.X
python setup.py install
6

通过ios谓词查找元素

此方法允许使用ios谓词查找元素。这些方法需要 谓词格式的字符串,包括元素类型和 字段。

添加方法 driver.find_element_by_ios_predicatefind_elements_by_ios_predicate

tar -xvf Appium-Python-Client-X.X.tar.gz
cd Appium-Python-Client-X.X
python setup.py install
7
tar -xvf Appium-Python-Client-X.X.tar.gz
cd Appium-Python-Client-X.X
python setup.py install
8

按ios类链查找元素

此方法仅适用于xcuitest驱动程序

此方法允许使用ios类链查找元素。采取的方法 类链格式的字符串,包括元素类型。

添加方法DS 驱动程序。按iOS类链查找元素和按iOS类链查找元素

tar -xvf Appium-Python-Client-X.X.tar.gz
cd Appium-Python-Client-X.X
python setup.py install
9
git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
0

按辅助功能ID查找元素

允许使用"辅助功能ID"找到元素。这些方法需要 表示附加到给定元素的辅助功能ID或标签的字符串,例如,对于iOS,辅助功能标识符;对于Android,内容描述。添加方法 驱动程序。按辅助功能ID查找元素和按辅助功能ID查找元素

git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
1
git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
2

触摸操作

为了适应移动触摸操作,触摸操作涉及 多指针,selenium 3.0草案指定多动作离子",建立在触摸操作的基础上。

移动到:请注意,如果没有元素,请使用关键字参数

api是围绕touchAction对象构建的,这些对象是要按顺序执行的一个或多个操作的链。操作如下:

执行

perform方法将链发送到服务器以便执行。它还清空操作链,以便可以重用对象。它将位于所有单个动作链的末端,但在编写多个动作链时未使用。

轻触

tap方法是独立的,不能与其他方法链接。如果需要启动较长链的类似于轻触的操作,请使用

它可以采用具有可选x-y偏移量的元素,也可以采用攻丝的绝对x-y坐标和可选计数。

git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
3

长按

释放

移动到

等待

取消

多点触控操作

除了在单个手势中执行的动作链之外,还可以同时执行多个链,以模拟多个手指动作。这是通过构建一个multiaction对象来实现的,该对象包含多个单独的touchaction对象,每个"手指"一个。

如果两个列表相邻,我们可以独立滚动,但同时滚动:

git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
4

特定于Appium的触摸操作

移动测试人员需要做的操作很少,使用touch和multi-touch action api构建这些操作相对复杂。为此,我们在Appium客户端中提供了一些方便的方法。

驱动程序。点击

这个方法,在webdriver对象上,允许用多个手指轻敲,只需传入一个要轻敲的x-y坐标数组即可。

git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
5

驱动程序。轻扫

从一点刷到另一点。

应用程序管理方法

有时您希望在测试中管理正在运行的应用程序, 例如安装或删除应用程序等。

后台应用程序

方法将正在运行的应用程序发送到后台 在指定的时间内,以秒为单位。在那之后,申请是 回到前台。

git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
6

检查是否安装了应用程序

要检查设备上当前是否安装了应用程序,请使用设备。是否安装了应用程序 方法。此方法获取应用程序的bundle id并返回truefalse

git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
7

安装应用程序

要在设备上安装未安装的应用程序,请使用设备。安装应用程序, 发送到应用程序文件或存档的路径。

git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
8 "H4>雷莫保存应用程序

如果需要从设备中删除应用程序,请使用设备。删除应用程序, 传入应用程序ID。

git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
9

关闭和启动应用程序

要启动在所需功能中指定的应用程序,请调用driver.launch_app。 关闭应用程序由驱动程序启动。关闭应用程序

$ python -m autopep8 -r --global-config .config-pep8 -i .
0

重置应用程序

要重置正在运行的应用程序,请使用driver.reset

$ python -m autopep8 -r --global-config .config-pep8 -i .
1

其他方法

开始任意活动

driver.start_activity方法打开设备上的任意活动。 如果活动不是被测应用程序的一部分,它也将 启动活动的应用程序。

$ python -m autopep8 -r --global-config .config-pep8 -i .
2

检索应用程序字符串

property方法driver.app_strings从 设备上的应用程序。

$ python -m autopep8 -r --global-config .config-pep8 -i .
3

向Android设备发送关键事件

driver.keyevent方法向设备发送一个keycode。密码可以是 在这里找到。 仅限于Android。

$ python -m autopep8 -r --global-config .config-pep8 -i .
4

在iOS中隐藏键盘

要在iOS中隐藏键盘,请使用driver.hide_keyboard。如果密钥名 发送时,将按具有该名称的键盘键。如果没有参数 传入时,键盘将通过点击文本外部的屏幕来隐藏 场,从而消除焦点。

$ python -m autopep8 -r --global-config .config-pep8 -i .
5
$ python -m autopep8 -r --global-config .config-pep8 -i .
6

检索当前正在运行的包和活动

property方法返回当前包的名称 设备上运行的程序包。

$ python -m autopep8 -r --global-config .config-pep8 -i .
7

属性方法driver.current_activity返回当前 设备上正在运行的活动。

$ python -m autopep8 -r --global-config .config-pep8 -i .
8

直接在元素上设置值

有时需要直接在设备上设置元素的值。做 这将调用方法driver.set_value元素.set_value

$ python -m autopep8 -r --global-config .config-pep8 -i .
9

从设备中检索文件

要从设备中检索文件的内容,请使用driver.pull_file 返回在base64中编码的指定文件的内容。

$ python -m isort -rc .
0

在设备上放置文件

要将文件放在设备的特定位置,请使用驱动程序.push_file 方法,它接受路径和数据,编码为base64,写入文件。

$ python -m isort -rc .
1

结束测试覆盖率

android模拟器中有一些功能可以检测某些活动。 有关此方面的信息,请参阅appium docsappium docs。结束这个报道 并检索数据,使用driver.end_test_coverage,传入意图 正在对其进行检测,并且指向上的coverage.ec文件的路径 设备:

$ python -m isort -rc .
2

锁定设备

要在iOS上锁定设备一定时间,请使用driver.lock。这个 参数是解锁前等待的秒数。

摇动设备

要摇动设备,请使用driver.shake

应用程序设置

设置是appium引入的一个新概念。它们目前不是mobile json wire协议或webdriver规范的一部分。

设置是指定Appium服务器行为的一种方式。

设置为:

可变的,它们可以在会话期间更改 仅在会话期间适用。每次新会话都会重置它们。 控制appium服务器在测试自动化期间的行为方式。它们不适用于控制正在测试的应用程序或设备。

有关详细信息,请参见文档。

获取设置:

$ python -m isort -rc .
3

设置设置:

$ python -m isort -rc .
4

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在地图上获取路线点   java将ArrayList传递给方法?   java如何将类从wsdl2java创建的默认包排序到不同的包中?   在Android中使用PDFTextStream,获得Java。awt。geom。generalpath(NoClassDefFound异常)   安卓上的java蓝牙   在Eclipse中搜索具有特定导入的Java文件   使用OkHTTP客户端和HttpsURLConnection的java不支持https获取请求方法“GET”   java LiquiBase 2.0.5中是否有将更改日志sql输出到文件的方法?   Java:获取对象所属的最低级别类   在Java中创建字符串路径以读取文本文件   java以自定义格式将当前日期保存到oracle Db   java RESTEasy不会将我的SpringBean映射到定制SpringContextLoader   java Spring验证程序未向客户端提供消息   java如何在ant构建中添加(addmodules jdk.incubator.vector)模块