Python+appium+Android真机测试示例

Android

第一步:电脑安装Android SDK并且配置好adb命令
第二步:打开手机开发者选项
第三步:在开发者选择中设置允许USB调试
第四步:在终端命令行中执行adb devices

lujunpeng@lujunpengdeMacBook-Pro ~ % adb devices
List of devices attached
VBJDU18608004539	device

第五步:在终端命令行中执行 adb tcpip 5555

lujunpeng@lujunpengdeMacBook-Pro ~ % adb tcpip 5555
restarting in TCP mode port: 5555

第六步:打开手机设置WiFi界面找到WiFi连接的IP
第七步:在终端命令行执行 adb connect 手机IP

lujunpeng@lujunpengdeMacBook-Pro ~ % adb connect 10.10.31.85 
connected to 10.10.31.85:5555

启动appium 然后使用appium server连接真机
配置参数
deviceName 设备名称,通过adb devices -l命令获取model参数值

lujunpeng@lujunpengdeMacBook-Pro ~ % adb devices -l
List of devices attached
VBJDU18608004539       device usb:336592896X product:COL-AL10 model:COL_AL10 device:HWCOL transport_id:9
10.10.31.85:5555       device product:COL-AL10 model:COL_AL10 device:HWCOL transport_id:10

platformName 系统名称,Android
platformVersion 系统版本,非必填,通过设置-关于手机-Android版本查看 10.0.1
appPackage,应用包名

获取方法:
1.aapt dump badging /Users/lujunpeng/Downloads/app-release.apk
2.adb shell pm list packages
3.adb shell pm list packages -3 列出所有第三方包名称
4.adb shell dumpsys window windows|grep -I current ,列出当前打开的应用的包名以及Activity
5.adb shell dumpsys window windows | grep -E 'mCurrentFocus'

lujunpeng@lujunpengdeMacBook-Pro ~ % aapt dump badging /Users/xxx/app-release.apk
package: name='cn.xxx.management_app' versionCode='66' versionName='1.18.3' compileSdkVersion='28' compileSdkVersionCodename='9'
sdkVersion:'21'
targetSdkVersion:'28'

appActivity,应用启动项名称

获取方法:
1.aapt dump badging /Users/lujunpeng/Downloads/app-release.apk
2.adb shell dumpsys window windows | grep -E 'mCurrentFocus'

from common import *

#前面获取的真机参数
appium_connect = {
    
    'appium:deviceName': 'COL_AL10', 'appium:appPackage': 'cn.styd.management_app',
                  'appium:appActivity': 'cn.styd.management_app.MainActivity', 'platformName': 'Android'}

driver = Remote('http://127.0.0.1:4723/wd/hub', appium_connect)
print(driver)

# 允许
driver.find_element(By.ID, 'com.android.permissioncontroller:id/permission_allow_button').click()

# 禁止
# driver.find_element(By.ID, 'com.android.permissioncontroller:id/permission_deny_button').click()

driver.find_element(By.ID, 'com.android.permissioncontroller:id/permission_allow_button').click()
time.sleep(1)
driver.find_element(By.XPATH, '//android.view.View[@content-desc="同意协议"]').click()
# driver.find_element(By.ID, 'com.android.permissioncontroller:id/permission_deny_button').click()
# driver.find_element(By.PARTIAL_LINK_TEXT, '不同意并退出').click()
driver.find_element(By.XPATH, '//android.view.View[@content-desc="登录"]').click()
driver.find_element(By.CLASS_NAME, 'android.widget.EditText').send_keys('username')
driver.find_element(By.XPATH, '//android.view.View[@content-desc="请输入密码"]').send_keys('passwrod')
driver.find_element(By.CLASS_NAME, 'android.widget.ImageView').click()
time.sleep(1)

driver.find_element(By.CLASS_NAME, 'android.view.View').click()

猜你喜欢

转载自blog.csdn.net/lu962820662/article/details/123531371
今日推荐