appium移动端自动化初解

启动顺序

  1. 安装Android-sdk
    下载地址:Android-sdk
    在这里插入图片描述
    我下载的上面个,下载完成后解压,然后运行SDK Manager.exe
    在这里插入图片描述
    我是为了platform-tools下面弄个adb工具,方便后面抓app包信息,记得配置环境变量
    在这里插入图片描述

  2. 启动appium
    下载appium:官网地址http://appium.io/
    下载exe文件后直接运行安装,完成后启动
    在这里插入图片描述

  3. 然后进去配置app属性
    在这里插入图片描述
    可以直接把这些属性copy到右边json框
    {
    “deviceName”: “CLB7N18921000068”,
    “platformName”: “Android”,
    “platformVersion”: “10”,
    “appPackage”: “com.tencent.mobileqq”,
    “appActivity”: “.activity.SplashActivity”
    }在这里插入图片描述

  • deviceName:设备名称,连接手机后,在dos下执行adb devices
    在这里插入图片描述

    • platformName:Android,苹果的不行
    • platformVersion:版本可以自己查手机里面
    • appPackage:包名,我找了半天没找到我想要的包,这里qq的包到是好找。dos下执行adb shell pm list package -3,列出所有的第三方包。也可以先执行adb shell,然后执行pm list package -3
    • appActivity:app的啥组件哦,我也不清楚,网上说的几种方式我没抓到:adb shell然后dumpsys window windows | grep -i Current。我用了另外的方法,adb logcat>d:/log.txt,打印日志,然后在手机上操作app,完成后,到log.txt里面去找Displayed,找到下面段内容就是了,.activity.SplashActivity,记得前面有个点
      在这里插入图片描述
  1. python调用appium-python-client,定位元素操作app,直接附上代码了
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from time import sleep

# server 启动参数
desired_caps = {
    
    }
# 设备信息
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '10'
desired_caps['deviceName'] = 'CLB7N18921000068'
# app信息
desired_caps['appPackage'] = 'com.tencent.mobileqq'
desired_caps['appActivity'] = '.activity.SplashActivity'
# desired_caps['noReset'] = true
print('配置app属性完成', desired_caps)
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
print('启动服务')
WebDriverWait(driver, 40).until(lambda driver: driver.find_element_by_id("com.tencent.mobileqq:id/dialogRightBtn"))
driver.find_element_by_id("com.tencent.mobileqq:id/dialogRightBtn").click()
print('同意协议')
WebDriverWait(driver, 20).until(lambda driver: driver.find_element_by_id("com.tencent.mobileqq:id/btn_login"))
driver.find_element_by_id("com.tencent.mobileqq:id/btn_login").click()
print('点击登录')
WebDriverWait(driver, 20).until(lambda driver: driver.find_element_by_id("com.tencent.mobileqq:id/nlz"))
driver.find_element_by_id("com.tencent.mobileqq:id/nlz").click()
print('弹出一个绑定手机号的框,然后隐藏掉')
WebDriverWait(driver, 20).until(lambda driver: driver.find_element_by_accessibility_id("请输入QQ号码或手机或邮箱"))
driver.find_element_by_accessibility_id("请输入QQ号码或手机或邮箱").send_keys("503646110")
driver.find_element_by_accessibility_id("密码 安全").send_keys("11111111")
driver.find_element_by_id("com.tencent.mobileqq:id/login").click()
print('登录完成')
sleep(3)
driver.quit()

猜你喜欢

转载自blog.csdn.net/qq_31290381/article/details/115441378