Appium安装
- adb:andoid的控制工具,用于获取android的各种数据和控制
- Appium Desktop:内嵌了appium server和inspector的综合工具
- Appium Server:appium的核心工具,命令行工具(被Appium Desktop替代)
- Appium client:各种语言的客户端封装库,用于连接appium server
- python、java、ruby、js…
环境搭建
python客户端:
pip install appium-python-client
from appium import webdriver
服务端:
appium-server:
- 1.appium-desktop
- appium inspector
- appium server
- 2.appium server
- nodejs > = 10 建议12版本
- npm > 6
- 安装请参考:appium安装
手机端:
- Android 设备
- 真机:1、打开调试 2、安装驱动程序(仅windows)
- 安装apk:
adb install /*.apk
- 覆盖安装:
adb install -r /*.apk
- 多设备:
adb -s 设备id install /*.apk
- 安装apk:
- 模拟器 :mumu、emulator、genimotion
- 真机:1、打开调试 2、安装驱动程序(仅windows)
- adb : android debug brige
- 配置SDK
- 环境变量参考:Linux – 安装配置Android SDK
- ios设备只能运行在Mac os上
- Xcode可以创建模拟器
- libimobiledevice
- ideviceinstall
- WDA(安装在手机上)
常见端口号
1、4723 服务端的默认端口号
一个服务连接一个客户端
当有多个客户端设备时,需要开启多个appium服务
指定端口号开启appium服务:
appium -p 4724
2、8200端口是手机端的默认端口
3、5037 是adb server默认的端口
adb client 是命令
adb server运行在电脑端的server
adbd运行在anroid设备
查找包名和Activity名
adb devices
adb logcat | grep -i displayed
客户端配置连接
desire_caps = {
"platformName": "Android",
"deviceName": "mvq8aaw4ca5tcamn",
"appPackage": "com.xueqiu.android",
"appActivity": ".view.WelcomeActivityAlias"
}
self.driver = webdriver.Remote("http://localhost:4723/wd/hub", desire_caps)
更多Desired Capabilities配置请查看:Appium Desired Capabilities
查找元素
Appium中的MobileBy继承了selenium中的By,扩展了一些移动端特有的操作,
from selenium.webdriver.common.by import By
class MobileBy(By):
IOS_PREDICATE = '-ios predicate string'
IOS_UIAUTOMATION = '-ios uiautomation'
IOS_CLASS_CHAIN = '-ios class chain'
ANDROID_UIAUTOMATOR = '-android uiautomator'
ANDROID_VIEWTAG = '-android viewtag'
ANDROID_DATA_MATCHER = '-android datamatcher'
ANDROID_VIEW_MATCHER = '-android viewmatcher'
WINDOWS_UI_AUTOMATION = '-windows uiautomation'
ACCESSIBILITY_ID = 'accessibility id'
IMAGE = '-image'
CUSTOM = '-custom'