UIAutomator2 一个简单的练手demo,自动刷东方头条

UIAutomator2 一个简单的练手demo,自动刷东方头条

兼容不是很好,还有情况没有写

import uiautomator2 as u2
import time

n = 0

#连接设备
# if u2.connect_usb():
#     print("已连接USB设备")
# d=u2.connect_usb()
d=u2.connect_wifi("192.168.2.237")
# elif u2.connect_wifi("192.168.1.105"):
#     print("连接WiFi设备")
# d=u2.connect_wifi("192.168.1.105")
# else:
#     print("未能连接设备")
print(d.info)
#获取窗口大小

print("分辨率是:"+ str(d.window_size()))
'''解锁'''
def screen_on():
    d.screen_on()
    d.unlock()
    d.swipe(0.5, 0.9, 0.5, 0.6, 0.05)
    time.sleep(1)
    d.swipe_points([(0.228, 0.525),(0.005, 0.525),(0.766, 0.525),(0.5, 0.677),(0.228, 0.828),(0.497, 0.828),(0.761, 0.828)],0.05)
screen_info=d.info.get("screenOn")
if screen_info==False:
    screen_on()
else:
    print("无需解锁")

'''启动app'''
def star_app(pkg):
    d.toast.show("正在启动app")
    d.app_start(pkg)
    time.sleep(2)
star_app("com.songheng.eastnews")

'''登录'''
def login():
    d(resourceId="com.songheng.eastnews:id/y6").click_exists(timeout=15)
    d(resourceId="com.songheng.eastnews:id/la").click_exists(timeout=15)
    d(resourceId="com.songheng.eastnews:id/a8l").click_exists(timeout=15)
    
    
    #判断是否需要登录
    if d(text=u"未登录"):
        d(text=u"未登录").click_exists(timeout=15)
        d(text=u"点击登录").click_exists(timeout=15)
        d(text=u"账号密码登录").click_exists(timeout=15) 
        d(className="android.widget.EditText").clear_text()
        d(className="android.widget.EditText").click()
        d.shell("input text 15021501530") 
        d(resourceId="yzm", text=u"xxxx", className="android.widget.EditText").set_text("xxxx") #用户名和密码填写自己的
        time.sleep(1)   
        d(text=u"点击领取红包", className="android.view.View").click()
        d(resourceId="com.songheng.eastnews:id/a8l", className="android.widget.ImageView").click_gone(1,2)
        d(resourceId="com.songheng.eastnews:id/fi").click_exists(timeout=10)

    elif d(resourceId="com.songheng.eastnews:id/afo"):
         print ("已经登录,无需登录")
'''获取用户名'''
def get_username(username,password):
    d(className="android.widget.EditText").clear_text()
    d(text=u"请输入手机号")
    d(text=u"请输入手机号").set_text(username)
    d(text=u"请输入密码").set_text(password)
    d.press("back")
    time.sleep(2)

'''阅读新闻'''
def read_news():
    
    while True:
        d(scrollable=True).scroll(steps=35)
        # d(resourceId="com.songheng.eastnews:id/vf", text=u"取  消", className="android.widget.Button").click_gone(1,1)
        time.sleep(0.5)  
        if d(text=u"展开全文"):
            time.sleep(1)

            if d(text=u"展开全文"):
                d(text=u"展开全文").click()
                # d(resourceId="com.songheng.eastnews:id/vf", text=u"取  消", className="android.widget.Button").click_gone(1,1)
            else:
                d(scrollable=True).scroll(steps=35)
                # d(resourceId="com.songheng.eastnews:id/vf", text=u"取  消", className="android.widget.Button").click_gone(1,1)
                d(text=u"展开全文").click()
                
            # else:
            #     if d(text=u"猜你喜欢 ", className="android.view.View"):
            #         d(scrollable=True).scroll(steps=35)
            #         d.press("back")
            #         n+=1
            #         # print("第{}次浏览新闻".format(n))
            #         get_news()
            #     time.sleep(1)
                
                while True:
                    d(scrollable=True).scroll(steps=35)
                    
                    if d(text=u"猜你喜欢 ", className="android.view.View"):

                        d(scrollable=True).scroll(steps=35)
                        
                        d.press("back")
                        break
                        get_news()
                        
        elif d(resourceId="wrapper", className="android.view.View"):
            d(scrollable=True).scroll(steps=50)
            
            d(scrollable=True).scroll(steps=50)
            d.press("back")
            break
            get_news()
        elif d(text=u"百度一下"):
            d.press("back")
            break
            get_news()
            

'''点击新闻'''
def click_news(n):
    n+=1
    # d(resourceId="com.songheng.eastnews:id/vf", text=u"取  消", className="android.widget.Button").click_gone(1,1)
    d(resourceId="com.songheng.eastnews:id/gk").click_gone(1,2)
    d(resourceId="com.songheng.eastnews:id/mc").click_gone(1,2)
    code= d(resourceId="com.songheng.eastnews:id/o0").get_text()
    print(n,"开始阅读:"+ code)
    d(resourceId="com.songheng.eastnews:id/o0").click()
    return n
  
    
    
'''获取新闻'''
def get_news():

    # d(resourceId="com.songheng.eastnews:id/l2").click_exists(timeout=30)
    while True:
        
        d.swipe(0.4, 0.3, 0.4, 0.9, 0.3)
        # if d(resourceId="com.songheng.eastnews:id/gk"):
        #     time.sleep(1)
        #     click_news()
        #     read_news()

        if d(text="下拉刷新"):
            time.sleep(1)
            click_news(n)
            read_news()
        elif d(text="松开立即刷新"):
            time.sleep(1)
            click_news(n)
            read_news()
        elif d(text="刷新中"):
            time.sleep(1)
            click_news(n)
            read_news()
        
login()
get_news()


    

# d(text=u"账号密码登录").click()
# d(className="android.widget.EditText").clear_text()
# d(text=u"请输入手机号")
# d(text=u"请输入手机号").set_text("15021501530")
# print("输入账号")
# d(text=u"请输入密码").set_text("happyforever1")
# print("输入密码")
# time.sleep(1)
# d.press("back")
# time.sleep(2)
# d(text=u"点击领取红包").click()

猜你喜欢

转载自blog.csdn.net/qq_37489565/article/details/82528589
今日推荐