第二篇:ATX 操作iOS控件API

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

ATX的简单操作:

连接设备


假设启动的WebDriverAgent的地址是http://localhost:8100,那么可以使用下面的代码链接到设备:

import atx
driver = atx.connect('http://localhost:8100',platform='ios')

常用操作


启动应用
需要知道应用的bundleId,可以通过ideviceinstaller -l查到。在查询之前,需要使用brew install ideviceinstaller来安装这个工具。查询到bundle ID后使用下面的代码就可以启动、停止应用

driver.start_app('com.netease.onmyoji')
driver.stop_app('com.netease.onmyoji')

拿到屏幕
screen = driver.display
print screen.width, screen.height

** 锁定当前屏幕(主要用于提高查询效率)**

d.keep_screen()
d.free_screen()

点击和长按
driver.click(100,100) # 点击坐标(100,100),原点在左下角
d.long_click(50, 100) # 长按坐标(50,100),原点在左下角

滑动

# 从(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("[email protected]\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

driver.home()

图片查找与点击

#  找到图片坐标
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中文件之一,找到就返回
# - [email protected]
# - [email protected]
# - button.1920x1080.png
# - button.1080x1920.png
d.click_image("[email protected]")

你可能感兴趣的:(第二篇:ATX 操作iOS控件API)