纯搬运贴,内容几乎来源于作者的几篇介绍文章,这里做了整合 目前ATX+UIautomator2 处于自动化界的浪口风尖,现在有幸终于有时间对ATX进行了粗浅的了解 为什么要用ATX ATX+UIautomator2的优势: 1.速度吊打appnium,群里面的人这样说的
2.即使是id,text相同的控件也能随意指定哪一个进行点击操 d(resourceId="com.tencent.wecarnews:id/radio_list_item_frequency")[0].get_text()/click()
d(resourceId="com.tencent.wecarnews:id/radio_list_item_frequency", instance=1).get_text()
3.能获取到控件的安卓原生属性 d(text="Settings").info
4.能拿到toast信息 a = d.toast.get_message(5.0, 10.0, "default message")
print(a)
5.处理弹窗,还是显性等待 d.watcher("INSTALL").when(text="安装").click()
d.watcher("NEXT").when(text="下一步").click()
d.watchers.watched = True
优势还有很多,目前总结到这里
UIautomator安装 pip install -U --pre uiautomator2
初始化 python -m uiautomator2 init
一切准备就绪后,就可以进行预约的自动化之旅了!
这里贴一段官方的demo # coding: utf-8
import unittest
import uiautomator2 as u2
import time
import uiautomator2.ext.htmlreport as htmlreport
class TestCloudMusic(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.u = u2.connect_usb()
cls.u.healthcheck() # 解锁屏幕并启动uiautomator服务
hrp = htmlreport.HTMLReport(cls.u, 'report')
hrp.patch_click()
# cls.u.disable_popups(True) # 允许自动处理弹出框
cls.u.make_toast("测试开始", 3)
@classmethod
def tearDownClass(cls):
cls.u.make_toast("测试结束", 3)
cls.u.app_stop_all()
cls.u.service(
"uiautomator").stop() # 停止uiautomator守护程序,允许其他测试框架如 appium 运行
def setUp(self):
self.d = self.u.session("com.netease.cloudmusic") # restart app
time.sleep(5) # 等待首页广告结束
def tearDown(self):
pass
def testPrivateFM(self): # 私人FM
self.d(text="私人FM").click()
def testRecommendEveryday(self): # 每日推荐
self.d(text="每日推荐").click()
if __name__ == '__main__':
unittest.main()
一些简单的使用方法介绍: 定位方式 ResourceId定位: Text定位 Description定位 ClassName定位 xpath定位并不支持,一开始打算做支持的,但是发现不用也能搞定。就是代码写的长一点而已。 操作控件# click
d(text="Settings").click()
# long click
d(text="Settings").long_click()
# 等待元素的出现
d(text="Settings").wait(timeout=10.0)
中文字符的输入 d(text="Settings").set_text("你好")
如果定位不到元素需要使用 d.set_fastinput_ime(True)
d.send_keys("你好 Hello")
d.set_fastinput_ime(False) # 输入法用完关掉
如果感兴趣,更多详细的api和最新的信息请见项目 https://github.com/openatx/uiautomator2 如果喜欢,请给作者一个start☆,这是对作者付出的一种肯定,反正我是给了 |
|
来自: wenxuefeng360 > 《待分类1》