- adb连接华为真机
- 设置appium
- 实战代码
- 打开华为手机开发者模式:设置—>关于手机—>版本号(连点7次,进入开发者模式)—>系统和更新—>开发人员选项—>USB调试开启—>"仅充电"模式下允许ADB调试
- 连接数据线至pc,打开cmd,输入adb devices,出现设备名称,连接成功
安装weditor:
cmd:
1.pip install Uiautomator2
2.python -m uiautomator2 init(报错:进程被终止,查看是atx-agent未安装成功,自行下载安装包本地安装,成功)
3.pip install weditor(报错,git clone 克隆到本地再安装,成功)
确认安装成功:weditor --help
使用weditor:
cmd:>>weditor
虽然华为系统升级为了鸿蒙,但依旧可以用Android的配置和命令
查看版本: adb shell getprop ro.build.version.release
查看当前窗口的包名: 先打开手机中你要获取包名的APP
adb shell dumpsys window | findstr mCurrentFocus
# 导包appium
from appium import webdriver
import time
# 连接移动设备所必需的参数,放到字典中
desired_caps = {'deviceName': 'MYQUT1*****', 'platformName': 'Android', 'platformVersion': '10',
'appPackage': 'com.ss.android.ugc.aweme', 'appActivity': '.splash.SplashActivity', 'noReset': True}
# 当前要测试的设备的名称
# 系统
# 系统的版本
# 要测试的app的名称(包名)
# 要启动的app的哪个界面
# 控制是否清除session(
# False:如果上一个测试用例登录成功过了。下一个测试用例,在打开app时,进来的还是app打开的初始页面,不会记录登录状态
# True:如果上一个测试用例登陆成功了,下一个测试用例,在打开app时,进来的页面是登录成功后的页面。会保持登录状态。)
# 4723端口号(在appium中查看)
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_caps)
time.sleep(6) # 暂停10秒后执行
# 关闭app
driver.close_app()
# 释放资源
driver.quit()
出现 error:UiAutomation not connected! 错误,重启手机试试
实战代码# 导包appium
from appium import webdriver
import time
from appium.webdriver.common.appiumby import AppiumBy
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 连接移动设备所必需的参数,放到字典中
desired_caps = {'deviceName': 'MYQUT19*****', 'platformName': 'Android', 'platformVersion': '10',
'appPackage': 'com.ss.android.ugc.aweme', 'appActivity': '.splash.SplashActivity'}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_caps)
# 等待启动
driver.implicitly_wait(5)
# 获取窗口大小
size = driver.get_window_size()
# print(size)
# 是否出现验证
try:
el1 = driver.find_element(AppiumBy.XPATH, "//*[@text='同意']")
el1.click()
WebDriverWait(driver, 3).until(EC.presence_of_element_located(("xpath", "//*[@text='允许']")))
driver.find_element(AppiumBy.XPATH, "//*[@text='允许']").click()
except:
pass
time.sleep(1)
width = size["width"]
height = size["height"]
# 滑动
for i in range(0, 1000):
driver.swipe(start_x=width / 2, start_y=height / 4 * 3, end_x=width / 2, end_y=height / 4)
try:
WebDriverWait(driver, 1).until(EC.presence_of_element_located(("xpath", "//*[@text='禁止']")))
driver.find_element(AppiumBy.XPATH, "//*[@text='禁止']").click()
except:
pass
# time.sleep(1)
# 关闭app
driver.close_app()
# 释放资源
driver.quit()
脚本运行后,如果出现某个指令在appium中执行时手机屏幕长期未响应此动作,也没出现报错,可尝试重启手机



