第二篇:ATX 操作iOS控件API

通过前两篇文章的介绍,我们已经能通过代码启动阴阳师游戏了。在进一步开始往下写代码之前,我觉得我们有必要了解一下ATX API的相关内容,这有助于我们在后面的项目中更好更快的实现

ATX的简单操作:

连接设备


假设启动的WebDriverAgent的地址是<code>http://localhost:8100</code>,那么可以使用下面的代码链接到设备:<pre>import atx
driver = atx.connect('http://localhost:8100',platform='ios')</pre>

常用操作


启动应用
需要知道应用的bundleId,可以通过<code>ideviceinstaller -l</code>查到。在查询之前,需要使用<code>brew install ideviceinstaller</code>来安装这个工具。查询到bundle ID后使用下面的代码就可以启动、停止应用
<pre>driver.start_app('com.netease.onmyoji')
driver.stop_app('com.netease.onmyoji')</pre>
拿到屏幕
<pre>screen = driver.display
print screen.width, screen.height</pre>
** 锁定当前屏幕(主要用于提高查询效率)**
<pre>
d.keep_screen()
d.free_screen()
</pre>
点击和长按
<pre>driver.click(100,100) # 点击坐标(100,100),原点在左下角
d.long_click(50, 100) # 长按坐标(50,100),原点在左下角</pre>
滑动

# 从(250,300)滑动到(100,150),用时为1s. 默认时间是0.2s
driver.swipe(250,300,100,150,1.0) 

# 滑到到该元素,然后点击
driver(text="Login").scroll().click()

# 指定滑动的方向向右,方向有4个up | down | left | right
driver(text="Hello").scroll(direction="right", timeout=5.0)

输入框
首先要说明输入框要只支持自带的输入法,不支持搜狗
如果要找到输入框,需要用到Xpath相关的东西:

 #给输入框赋值,输入用户名
 driver(xpath=u"//TextField").set_text("someone@qq.com\n") 

 #给密码框赋值,输入密码
 driver(xpath=u"//SecureTextField").set_text("password")

 #清除输入框的文本
 driver(xpath=u"//TextField").clear_text()

警告框

 #当前弹出框的文本
 driver.session.alert.text

 #点击弹出框的确认
 d.session.alert.accept()

 #点击弹出框的取消
 d.session.alert.dismiss()

返回到home
<pre>driver.home()</pre>
图片查找与点击

#  找到图片坐标
if driver.exists('button.png'): # 判断截图是否在屏幕中出现, 反馈查找到的坐标
    print 'founded'

# 截图
driver.screenshot('screen.1920x1080.png') # 把截图存成一个文件

click_image函数

# 点击图片,如果图片没找到就报异常
driver.click_image("button.png")

# 添加图片描述 (通常用来生成测试报告)
driver.click_image("button.png", desc="hello button")

# 点击图片,如果图片没找到就返回一个空,不报异常
driver.click_image("button.png", safe=True)

# 长按一个图片
driver.click_image("button.png", action='long_click')

# 不等待的图片点击, 如果图片不存在直接返回None
d.click_nowait('button.png')

# 文件名添加截图手机的分辨率, 脚本运行在其他分辨率的手机上时可以自动适应
d.click_image("button.1920x1080.png")

多分辨率适配

# 下面这种方法会自动根据当前测试手机的分辨率选择合适的文件
# 比如手机分辨率1920x1080,代码会自动寻找文件4中文件之一,找到就返回
# - button@1920x1080.png
# - button@1080x1920.png
# - button.1920x1080.png
# - button.1080x1920.png
d.click_image("button@auto.png")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,786评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,262评论 4 61
  • 我的西安之旅终于成行。和我一行的,还有老大,红红,盖琳姐姐。 先交代下悲催的经历。没有直达西安的火车,所以我们计划...
    孙小凌阅读 735评论 3 2
  • 感赏早上孩子在我起床以后,能玩着电脑跟我说话,之前是不可能的,叫儿子出去吃早餐,儿子不愿意,说要吃饺子,我...
    紫玉_b836阅读 171评论 0 0