第三:APP自动化工具-Airtest-中Poco操作
【代码】第三:APP自动化工具-Airtest-中Poco操作。
·
一.准备工作
1.点击文件选项-选择创建pthon脚本



2.点击Poco辅助窗-选择Android-弹窗黄色条,点击Yes按钮操作


from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

二.定位元素
1.Poco底层是uiautomator实现的(第一篇文章有描述)


三.poco基于设备/屏幕方式
1.poco.click((x,y))基于屏幕点击相对坐标为x,y的位置

# -*- encoding=utf8 -*-
__author__ = "cheng"
from airtest.core.api import *
from airtest.cli.parser import cli_setup
if not cli_setup():
auto_setup(__file__, logdir=True, devices=["android://127.0.0.1:5037/127.0.0.1:7555?cap_method=ADBCAP&touch_method=MAXTOUCH&",])
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
# script content
print("start...")
poco.click([0.362,0.507])

2.poco.get_screen_size():获取操作的坐标x,y值
2.1.print(poco.get_screen_size())


3.poco.swipe(v1,v2)基于屏幕从v1位置滑到到v2(在操作的图片中滑动操作坐标)

# 点到点
poco.swipe([0.36,0.87],[0.43,0.34])

# 点与方向
poco.swipe([0.36,0.87],direction=[0,0.3])

4.scroll("垂直/水平",百分比) 滑动

# 水平
poco.scroll("horizontal", 0.5)

# 垂直
poco.scroll("vertical", 0.9)

四.poco定位到元素方式
1.ele = poco(属性名=属性值)
1.1.如果找到多个元素是列表,如果能定位到唯一元素直接是个元素对象

# 定位到某元素就是直接操作的对象
poco(text="文档扫描").click()
# 定位到多个元素就是列表[]
print(len(poco(name="com.youdao.note:id/item_top_view_image")))
2.ele.click===>poco(属性名=属性值).click()点击指定元素
# 定位到一个元素就是直接操作的对象
poco(text="文档扫描").click()

3.ele.attr(属性名)根据属性名获取元素指定的属性值
# 获取文本属性
print(poco(text="文档扫描").attr("text"))

4.ele.setattr(属性名,属性值)对指定元素的属性重新赋值
poco(text="搜索笔记").setattr("text", "New Text")

5.ele.set_text("文本") 对指定元素设置文本值
poco(text="搜索笔记").set_text("搜索内容")

5.1.这个设置文本值,后续没有回车等动作

6.ele.get_text()获取元素的text属性值
# 获取文本属性
print(poco(text="文档扫描").get_text())

7.ele.swipe(坐标/方向)将指定元素滑到到某个位置/方向
# 坐标
poco(text="没有更多了~").swipe([0.4,0.4])
# 方向
poco(text="没有更多了~").swipe("up")

8.ele.exists(判断元素是否存在)
# 判断元素是否存在
print(poco(text="文档扫描").exists())

五.附录
1.运行注意事项
1.1.运行代码注意这三个不要开启,记得关闭

1.2.运行时这里需要时Andriod

更多推荐




所有评论(0)