import uiautomator2 as u2
import time
import random
d = u2.connect('填写自己需要连接的手机')
#------------下面的部分信息需要根据具体情况编辑的---------
#添加热门音乐时,选第几首歌
djsgq='1'
#发布视频是,选择第几个视频来发布,默认是第一个。有些人是全部录屏好了,再去发视频的,这里就用到了
spsx='1'
#录屏时的滚动快慢,0.1是很快,0.9是很慢,一般设置0.1-0.5就行
lpkm=0.3
#搜索的店名
ssdm='霸王茶姬(莱斯店)'
#店铺地址
dpdz='昆仑莱斯A2号楼'
#优惠条件,这个钱币的符号,我粘贴在浏览器的时候是正常的,现在放到Word里就显示问号了
yhtj='49.9💰抢门市价182💰'
#优惠内容
yhnr='33.8💰抢大杯双人乌龙茶'
#立抢提示
lqts='点击左下角地址立抢优惠'
#判断是录屏还是图文,lp是录屏,tw是图文
islt='lp'
#如果是图文,要选多少张图片,顺序是要怎么样的,数字不能重复,重复就会重复点击, 就会选不上了
twsx=('1','2','3','4','5')
#视频面上的文字
spwz='【'+ssdm+'】'+'\n'+dpdz+'\n'+yhtj+'\n'+yhnr+'\n'+lqts
#输入的标签
bqwz=spwz+'\n'+'#好店推荐 #网红美食打卡 #附近美食 #优惠活动 #本地美食 #吃货 #团购优惠 #团购 #优惠 #吃喝玩乐 #美食 #美食团购 #美食优惠 #美食探店 #美食推荐 #地方特色美食 #探店 #吃喝玩乐'
if islt=='tw':
bqwz=bqwz+'#抖音图文来了'
#------------上面的部分信息需要根据具体情况编辑的---------
#录屏和发布视频是两个相对独立的脚本的,但是都加了判断的,都是一键启动的,只是在相应的页面就可以一键启动了,录屏是判断是否存在有“立即购买”的那个按钮,有就会启动录屏
#开始录屏
if d.exists(text="立即购买"):
#下拉找到录屏按钮,下面两个坐标是我以小米手机来设定的,可以根据自己的手机自行设定
d.swipe_points([(0.492, 0.016), (0.492, 0.76)])
time.sleep(3)
d.xpath('//*[@resource-id="com.android.systemui:id/quick_qs_panel"]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]').click()
#读取录屏秒数,当录屏秒数大于7秒的时候,就录屏结束
lpms=d(resourceId="com.miui.screenrecorder:id/recorder_timer").get_text()
while int(lpms[3:5])<7:
d.swipe_points([(0.678, 0.719), (0.678, 0.202)],lpkm)
lpms=d(resourceId="com.miui.screenrecorder:id/recorder_timer").get_text()
#要点击两次才能结束录屏的,因为小米手机录屏的时候,录屏的那个按钮是半透明的,第一次是让它显示出来,第二次点击才结束录屏
d(resourceId="com.miui.screenrecorder:id/screen_record_switch").click()
d(resourceId="com.miui.screenrecorder:id/screen_record_switch").click()
#录屏和发布视频是两个相对独立的脚本的,但是都加了判断的,都是一键启动的,只是在相应的页面就可以一键启动了,发布视频是判断是否有发布视频的那个“+”号,有就可以发布视频
#开始发布视频
if d.exists(resourceId='com.ss.android.ugc.aweme:id/content_layout'):
#点击发布视频的+号(正中间的加号)
d.xpath('//*[@resource- id="com.ss.android.ugc.aweme:id/root_view"]/android.widget.FrameLayout[3]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout[1]').click()
d(resourceId="com.ss.android.ugc.aweme:id/f9w").wait(timeout=15.0)
time.sleep(1)
#点击选择相册
d(resourceId="com.ss.android.ugc.aweme:id/f9w").click()
#等待判断是否已经加载到相册图片和视频页面了
d.xpath('//*[@resource- id="com.ss.android.ugc.aweme:id/egy"]/android.widget.FrameLayout[1]').wait(timeout=15.0)
time.sleep(2)
#判断是录屏还是图文,这里是录屏,只点击某一个视频
if islt=='lp' :
#如果有下一步的话,是多选,可能要多点一个操作,所以先去掉
if d.exists(resourceId="com.ss.android.ugc.aweme:id/lzg",text='下一步'):
d(resourceId="com.ss.android.ugc.aweme:id/checkbox").click()
time.sleep(1.5)
#点击相册照片里的某一个视频,默认是第一个,这里有个参数(spsx)是在上面设定好的
d.xpath('//*[@resource-id="com.ss.android.ugc.aweme:id/egy"]/android.widget.FrameLayout['+spsx+']').click()
elif islt=='tw' :
#如果没有下一步的话,就要勾选多选按钮
if not d.exists(resourceId="com.ss.android.ugc.aweme:id/lzg",text='下一步'):
d(resourceId="com.ss.android.ugc.aweme:id/checkbox").click()
time.sleep(1.5)
#图文的话,先勾选多选按钮,然后按上面给到的图文的顺序选图片
d(resourceId="com.ss.android.ugc.aweme:id/checkbox").click()
#按上面设定好的选择图片顺序进行依次选择图片
for tw in twsx:
d.xpath('//*[@resource-id="com.ss.android.ugc.aweme:id/egy"]/android.widget.FrameLayout['+tw+']/android.widget.FrameLayout[1]').click()
else:
print('判断是录屏还是图文的时候出错了!')
#用下一步的按钮来判断是否到了编辑文字那一步
d(resourceId="com.ss.android.ugc.aweme:id/ien").wait(timeout=20.0)
time.sleep(2)
#点击文字按钮,进行编辑文字
d.xpath('//*[@resource-id="com.ss.android.ugc.aweme:id/dxw"]/android.widget.LinearLayout[4]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]').click()
#判断是否出现了文字编辑的编辑框
d(resourceId="com.ss.android.ugc.aweme:id/dg9").wait(timeout=15.0)
time.sleep(2)
#视频输入文字
d(resourceId="com.ss.android.ugc.aweme:id/dg9").set_text(spwz)
time.sleep(2)
#这里是选择文字的字体,我喜欢经典型的,所以就选经典的
while not d(text="经典"):
d.swipe_points([(0.76, 0.513), (0.46, 0.513)])
d(resourceId="com.ss.android.ugc.aweme:id/mma", text="经典").click()
time.sleep(1.5)
#编辑文字的外边框
d(resourceId="com.ss.android.ugc.aweme:id/k3=").click()
time.sleep(1.5)
#编辑文字的颜色
d(resourceId="com.ss.android.ugc.aweme:id/fo8").click()
time.sleep(1.5)
d(description="橙色").click()
time.sleep(2.5)
#点击文字编辑完成按钮
d(resourceId="com.ss.android.ugc.aweme:id/lzb").click()
time.sleep(2.5)
#拖拽文字上去一点,具体到什么位置,自行设定,因为手机的型号尺寸可能不太一样
d.drag(0.485, 0.704,0.485, 0.547,0.1)
time.sleep(2.5)
#选择音乐
d(resourceId="com.ss.android.ugc.aweme:id/m81").click()
time.sleep(2.5)
d(text="发现").wait(timeout=15.0)
#点击发现按钮
d(text="发现").click()
d(text="查看全部").wait(timeout=15.0)
d.swipe_ext("up", scale=0.9)
time.sleep(2)
d(text="热歌榜").click()
d.xpath('//*[@resource-id="com.ss.android.ugc.aweme:id/kgy"]/android.view.ViewGroup['+djsgq+']/android.widget.RelativeLayout[1]').wait(timeout=15)
#点击第一首歌曲
d.xpath('//*[@resource-id="com.ss.android.ugc.aweme:id/kgy"]/android.view.ViewGroup['+djsgq+']/android.widget.RelativeLayout[1]').click()
time.sleep(1)
#点击使用
d(resourceId="com.ss.android.ugc.aweme:id/n8k").click()
time.sleep(2.5)
#随便点击一个地方,让那个音乐的弹框消失,可以自行设定
d.click(0.6, 0.248)
time.sleep(2.5)
#点击下一步
d(resourceId="com.ss.android.ugc.aweme:id/ien").click()
#编辑文本框的文字,优惠信息和设置的标签填写
d(resourceId="com.ss.android.ugc.aweme:id/c-b").wait(timeout=15.0)
d(resourceId="com.ss.android.ugc.aweme:id/c-b").set_text(bqwz)
time.sleep(2.5)
#点击编辑完成按钮
d(resourceId="com.ss.android.ugc.aweme:id/cyc").click()
time.sleep(2)
#点击添加门店推广
d(resourceId="com.ss.android.ugc.aweme:id/jez").click()
#切换门店推广
d.xpath('//*[@resource-id="com.ss.android.ugc.aweme:id/i=z"]/android.widget.LinearLayout[1]/X.027[2]/android.widget.RelativeLayout[1]').wait(timeout=15.0)
d.xpath('//*[@resource-id="com.ss.android.ugc.aweme:id/i=z"]/android.widget.LinearLayout[1]/X.027[2]/android.widget.RelativeLayout[1]').click()
time.sleep(2)
#输入要搜索的门店,因为搜索出来的门店可能是比较多的,所以要自行选择推广的那个
d(resourceId="com.ss.android.ugc.aweme:id/i=q").set_text(ssdm)
#脚本编写by波波
uiautomator2 半自动发布视频脚本
最新推荐文章于 2025-04-23 15:55:39 发布