【Mac + Python3.6 + ATX基于facebook-wda】之IOS自动化(三):facebook-wda库--API学习以及附录:Github上对WDA的问题解答
下面简单介绍facebook-wda库--API的学习
import wda # debug模式,会在run运行时控制台生成消息
wda.DEBUG = False # False 关闭,True开启 # 如果连接本地地址失败,通常会运行1分钟才弹超时信息,在这可以设置超时10s就提示信息
wda.HTTP_TIMEOUT = 10.0 # 默认 60.0 seconds # 连接IOS测试机
c = wda.Client('http://localhost:8100') # 解锁屏幕并启动facebook-wda服务
c.healthcheck() # 返回手机HOME
c.home() # 启动应用
s = c.session("com.netease.cloudmusic") # 应用名通过命令:ideviceinstaller -l 查看
# 启动ios真机的设置
c.session("com.apple.Preferences") # 关闭应用
s.close() # 定位元素
el = s(name='密码登录',className='Button') # 判断元素存不存在
el.exists # 返回 true/false # 清空输入框
s(type='TextField').clear_text() # 输入值
s(type='TextField').set_text("xxx") # 获取测试手机屏幕大小
size = s.window_size() # 点击元素
s(type='TextField').tap()
s(name='收起键盘',className='Button').tap() # 定位坐标点击元素(0.5,0.87)点=>通过weditor获取的,参考我的第二篇文章第二节介绍【weditor】
s.tap(size[0]*0.5,size[1]*0.87) # 长按2秒定位坐标点击元素
s.tap_hold(size[0]*0.5,size[1]*0.87,2.0) # index=1为"home arrow news"元素下面的一个相同元素点击
s(label=u"home arrow news").tap()
s(label=u"home arrow news",index=1).tap() # 点到点滑动
# 从(0.5,0.8)点滑到(0.5,0.72)点
# 通过获取屏幕大小的百分比进行坐标定位点击
s.swipe(size[0]*0.5, size[1]*0.8, size[0]*0.5, size[1]*0.72, 0.5) # 滑动方向
s.swipe_left() # 手机最右面向左滑
s.swipe_right() # 手机最左面向右滑
s.swipe_up() # 手机最下面向上滑
s.swipe_down() # 手机最上面向下滑 # 滚动到并展示"提交"元素,也属于滑动,用于较长的展示不开的UI页面
s(label=u"提交").scroll()
未完待续...
附录:
感谢,参考相关文章:
《WebDriverAgent 的 python client 端使用记录》
《ATX 文档 - iOS 控件操作 API》注:这篇文章虽然引得atx包,但是有很多方法可以借鉴的
《ATX 使用 Python 库 facebook-wda 完成网易云音乐 iOS 客户端的自动化测试 (示例)》
《Mac下iOS自动化测试环境( WebDriverAgent,facebook-wda)搭建及简单测试》
【Mac + Python3.6 + ATX基于facebook-wda】之IOS自动化(三):facebook-wda库--API学习以及附录:Github上对WDA的问题解答的更多相关文章
- 【Mac + Python3.6 + ATX基于facebook-wda】之IOS自动化(二):安装facebook-wda库并编写简易自动化测试脚本
上一篇介绍完如何安装WDA,接下来开始正式安装开发库并编写自动化脚本. 目录: 一.安装facebook-wda库 二.通过WEditor定位元素 三.附录:学习资料 一.安装facebook-wda ...
- 【Mac + Python3.6 + ATX基于facebook-wda】之IOS自动化(一):WebDriverAgent安装
此篇介绍如何安装WebDriverAgent,下一篇介绍facebook-wda库的安装使用以及自动化脚本的开发. 前言: 对于iOS的应用的测试,如果不需要用到图像识别,推荐使用这个项目facebo ...
- 【ATX学习大纲】【ATX基于uiautomator2+Python学习】之Android自动化
github学习地址:https://github.com/openatx/uiautomator2 <_io.TextIOWrapper name='<stderr>' mode= ...
- 【Mac + ATX基于uiautomator2】使用weditor时,报错:requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(54, 'Connection reset by peer'))
产生以下原因找到了:是因为启动了appium,两者冲突,不能同时使用. 之前讲过怎么安装u2([Mac安装,ATX基于uiautomator2]之安装步骤)以及使用weditor, 但是经过一段时间, ...
- Mac python3连接mysql
Mac python3连接mysql 安装方法1: 1.pip3 install --upgrade pip //升级pip版本 2.sudo python3 /Library/Frameworks/ ...
- Python3操作MySQL基于PyMySQL封装的类
Python3操作MySQL基于PyMySQL封装的类 在未使用操作数据库的框架开发项目的时候,我们需要自己处理数据库连接问题,今天在做一个Python的演示项目,写一个操作MySQL数据库的类, ...
- 基于facebook-wda的iOS自动化操作实践记录
[本文出自天外归云的博客园] 原理 对于iOS自动化操作,主要靠WebDriverAgent来完成.在Mac电脑上连接真机iPhone,运行WebDriverAgentRunner会在Mac端启动WD ...
- GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。
1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便 ...
- RobotFrameWork环境搭建(基于HTTP协议的接口自动化)
1. 前言 接着上一篇<RobotFramework框架系统课程介绍>,本篇主要介绍一下在基于RobotFramework框架开展接口自动化前,前期的环境如何搭建,正所谓”工欲善其事,必先 ...
随机推荐
- 【转】C语言中结构体的位域(bit-fields)
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C语言又提供了一种数据结构 ...
- WCF 之 初识WCF
在编程中服务的作用越来越大了,.net从2.0的 webservice,到3.5之后的WCF,服务的功能越来越强了.现在先从简单的看起,先看看WCF服务的发布. 现在来看看一步一步发布 WCF 服务. ...
- Hibernate关系映射(三) 多对一和一对多
一.多对一 学生Student和班级Grade实现多对一,多个学生对应一个班级. Student.java实体类,映射了班级的属性. package com.lxit.entity; import j ...
- 《C++ Primer》 第四版 第7章 函数
<C++ Primer> 第四版 第7章 函数 思维导图笔记 超级具体.很具体,图片版,有利于复习查看 http://download.csdn.net/detail/onlyshi/94 ...
- 算法笔记_092:蓝桥杯练习 c++_ch04_02_修正版(Java)
目录 1 问题描述 2 解决方案 1 问题描述 [题目描述] 实现一个时间类Time.将小时,分钟和秒存储为int型成员变量.要求该类中包含一个构造函数,访问用的函数,一个推进当前时间的函数adv ...
- DOM BOM document window 区别
DOM 是为了操作文档出现的 API,document 是其的一个对象: BOM 是为了操作浏览器出现的 API,window 是其的一个对象. 使用下图讲解: 归DOM管的: E区:即doc ...
- 关于new String(new byte[]{0})
今天在做Zxing的二维码的时候,返回的数据竟然是这个样子,郁闷了一小会,说明我用的这个控件有改进的空间.由于时间的原因,最后还是把这个返回的字符串重新组装. Bundle bundle = data ...
- 反射机制(1)认识Class类
认识Class类: 正常情况下,必须指定类的完整路径才能实例化对象,但是java中也允许通过一个对象找到其所在类的信息.这实际就是class类的功能. package 类集; class X{ }; ...
- CXF调用方式——使用wsdl2java(Windwos下)
1.自动生成客户端代码: 先把CXF下到本地,本例中我下的是apache-cxf-3.1.2,然后在命令行里到相应路径执行命令: D:\soft\DevelopSoft\apache-cxf-\bin ...
- Linux下如何修改root密码以及找回root密码
Linux下修改root密码方法 以root身份登陆,执行: passwd 用户名 然后根据提示,输入新密码,再次输入新密码,系统会提示成功修改密码. 具体示例如下: [root@www ~]# pa ...