学习app的自动化测试过程中,一个朋友推荐了一个app,说看新闻可以获得金币,金币兑换零钱,就想着能不能写个脚本,刚好也能练手。
这个随随便便就能刷1000金币,也就是1快钱,可以用来薅羊毛
#coding:utf-8
from appium import webdriver
from time import sleep
import random
desired_caps={
"platformName":"android",
"platformVersion":"7.1.1",
"deviceName":"*****",
"appPackage":"com.songheng.eastnews",
"appActivity":"com.oa.eastfirst.activity.WelcomeActivity",
"noReset":"True"
}
driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps)
sleep(3)
def swipe_up(t=500,n=1):
"""上滑"""
size=driver.get_window_size()
x1=size['width']*0.5
y1=size['height']*0.85
y2=size['height']*0.15
for j in range(n):
driver.swipe(x1,y1,x1,y2,t)
def swipe_down(t,n):
"""下滑"""
size=driver.get_window_size()
# 开始x坐标
x1=size['width']*0.5
# 开始y坐标
y1=size['height']*0.15
#结束y坐标
y2=size['height']*0.85
for j in range(n):
driver.swipe(x1,y1,x1,y2,t)
#浏览新闻
def look_news(x,y):
sleep(8)
#点击新闻链接,没有找到比较合适的可利用的属性,只能用坐标了
driver.tap([(x,y)])
sleep(random.randint(12,18))
#上滑继续看,不然任务栏进度会暂停
swipe_up(t=500,n=1)
sleep(random.randint(8,12))
#上滑继续看,不然任务栏不动
swipe_up(t=500,n=1)
sleep(5)
#下滑看,走完一次任务栏获得金币
swipe_down(t=500,n=1)
sleep(10)
#返回新闻页
driver.keyevent('4')
sleep(random.randint(2,4))
#上滑,选其他新闻
swipe_up(t=500,n=1)
for i in range(100):
look_news(500,540)
if i<20:
#更新新闻页
driver.find_element_by_id("com.songheng.eastnews:id/l5").click()
look_news(500,540)
elif i<40:
#切换到【热点】栏
driver.find_element_by_xpath('//android.widget.TextView[@text="热点"]').click()
look_news(500,650)
else:
driver.quit()
把脚本里面的devicename改成自己的手机的设备名,附上app下载地址