appium+夜神模拟器模拟登录、退出app代码

在这里插入图片描述
完成之后,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()
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值