一、获取toast内容
1.确定触发条件(我的触发条件为发布了三篇文章不能再次发布,提示已经发布了三篇文章)
页面编辑为weditor,配合uiautomator2和python使用爽的一笔
2.编写点击事件
#coding=utf8
import uiautomator2 as u2
d.click_post_delay = 1.5#定义全局等待时间为1.5s
logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(funcName)s - %(message)s')
logger = logging.getLogger(__name__)
d = u2.connect('MQS7N19423008360')#连接手机devices序列号
d(resourceId="com.thinksns.sociax.android.nic:id/iv_add_news").click()#点击发布按钮
message = d.toast.get_message()#获取提示内容
logger.info (message)#打印提示内容
3.再通过和预期提示内容作比对或者直接通过if或者else做判断,就ok了
二、循环滑动加了一个判断是否点赞超过了20次,超过20次后提示已经点赞了20次
def praise():
for i in range(1,20):
d.xpath('地址').wait(2) # 等待元素,最长等10s(默认)
d.xpath('地址').click()#这里点击没有修改地址中的内容,如果滑动后path地址变了,需要使用变量带入
message_a=d.toast.get_message()
if message_a:
logger.info(message_a)
break
else:
i+=1
d.swipe(886,1312,886,1070)
praise()
结果
三、滑动
1、从一个坐标滑动到另一个坐标
d.swipe(886,1312,886,1070)
d.swipe(sx, sy, ex, ey, steps=10)#步长10
2、向上刷新滑动
d(scrollable=True).scroll.vert.backward()#向上滑动刷新
3、拖拽
d.drag(sx, sy, ex, ey)
4.全屏滑动
先获取当前屏幕的大小,输出的是(1920,1080) 其中a(0)=1920,a(1)=1080
然后通过y轴的改变,上下滑动,如果向上滑动,则y_b的值比y_a的值大,反之
# 获取屏幕的size
a=(d.window_size())#获取页面的高度宽度
x=a[0]#获取出来是一个数组,取第一个为x
y=a[1]#取第二个为y
x_a=a[0]*0.5
y_a=a[1]*0.7
y_b=a[1]*0.2
d.swipe(x_a,y_a,x_a,y_b)