完成之后,cmd里会出现很多apk的信息,待会儿代码里会用到
模拟登录抖音,输入账号密码登录的方式会出现给手机发验证码,只能先把微信登好,登录抖音时选择微信登录的方式
其中可以安装使用GetScreenPostion.apk,它可以用来获取手机屏幕坐标
from time import sleep
import time
import random
from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from appium.webdriver.common.touch_action import TouchAction
from selenium.webdriver.support import expected_conditions as EC
desired_caps = {
#设备系统1.platformName:这里是android的apk
'platformName': 'Android',
#设备名称2.deviceName:手机设备名称,通过adb devices查看
'deviceName': '127.0.0.1:52001',
#安卓版本3.platformVersion:android系统的版本号 cmd里找targetsdkversion
'platformVersion': '26',
# apk包名4.appPackage:apk包名 cmd里找package:name=
'appPackage': 'com.ss.android.ugc.aweme',
#apk的launcherActivity cmd里找laucher-activity:name=
'appActivity':'com.ss.android.ugc.aweme.main.MainActivity',
'unicodeKeyboard': True, # 绕过手机键盘操作,unicodeKeyboard是使用unicode编码方式发送字符串
'resetKeyboard':True,# 绕过手机键盘操作,resetKeyboard是将键盘隐藏起来
}
#启动app
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
sleep(40)
def into_user_():
try:
# 点击‘我’,进入个人中心
TouchAction(driver).press(x=647, y=1229).release().perform()
sleep(6)
print('dingweiwo')
#点击‘选项’,(三个横线)
driver.find_element_by_id("com.ss.android.ugc.aweme:id/bnk").click()
sleep(6)
# 点击‘设置’
driver.find_element_by_id("com.ss.android.ugc.aweme:id/dra").click()
sleep(6)
#屏幕下拉
# TouchAction(driver).press(x=354, y=365).move_to(x=354, y=1083).release().perform()
driver.swipe(354,1083,354,365,1000)
sleep(6)
# 点击‘退出登录’
driver.find_element_by_id("com.ss.android.ugc.aweme:id/bkm").click()
sleep(6)
#确定退出
try:
#id定位
driver.find_element_by_id("com.ss.android.ugc.aweme:id/pi").click()
sleep(6)
except:
# 坐标定位
TouchAction(driver).press(x=594, y=694).release().perform()
except Exception as f:
print(f)
def out_login():
try:
try:
try:
# 登录之后容易出现推送消息,点击取消
driver.find_element_by_id("com.ss.android.ugc.aweme:id/q2").click()
print('关闭了推送')
sleep(6)
into_user_()
except:
#有可能会让更换头像,点击关闭
TouchAction(driver).press(x=537, y=395).release().perform()
print('关闭了更换头像')
sleep(6)
into_user_()
except:
#上面两种可能都不存在是,运行进入用户中心
into_user_()
except Exception as f:
print(f)
def login():
try:
print(4)
#点击点赞,弹出选择登录方式,也有可能直接弹出微信登录
driver.find_element_by_id("com.ss.android.ugc.aweme:id/a4x").click()
sleep(6)
#没有直接弹出微信登录时
try:
print(5)
#选择其他方式登录
driver.find_element_by_id("com.ss.android.ugc.aweme:id/dn9").click()
sleep(6)
# 选择微信登录
driver.find_element_by_id("com.ss.android.ugc.aweme:id/ata").click()
sleep(6)
# 直接弹出微信登录时
except:
print(6)
#直接登录
driver.find_element_by_id("com.ss.android.ugc.aweme:id/bkh").click()
except Exception as f:
print('f',f)
if __name__=='__main__':
login()
time.sleep(40)
out_login()