电脑连接联想模拟器
https://www.cnblogs.com/balllyh/p/15742852.html
https://blog.csdn.net/m0_38019894/article/details/145555060
电脑连接联想模拟器
联想模拟器端口:11509
root 权限
安装 Android SDK
具体实现流程:
对于安卓 APP 的自动化,Appium Server 是需要 Android SDK 的。
因为要用到里面的一些工具,比如要执行命令:
- 设置手机
- 传送文件
- 安装应用
- 查看手机界面
配置 Android SDK
配置下 adb 命令环境变量
验证下
连接手机(模拟器)
开启 开发者模式
mumu浏览器(16384)
连了2个,但是 adb devices -l 只显示第一个
发现联想模拟器断了之后,mumu 浏览器也连不上,进一步排查:
打开 USB 调试功能
进一步测试(就相当于你用 usb 连接手机,然后开启手机的开发者选项了)
关机后,再进行尝试
adb devices
adb devices -l
使用新的 venv 使用 python10
环境变量和 PATH 顺序有关
appium Client 代码实现
from appium import webdriver
from selenium.webdriver.common.by import By
from appium.webdriver.extensions.android.nativekey import AndroidKey
from appium.options.android import UiAutomator2Options
desired_caps = {
'platformName': 'Android', # 被测手机是安卓
'platformVersion': '9', # 手机安卓版本,如果是鸿蒙系统,依次尝试 12、11、10 这些版本号
'deviceName': 'xxx', # 设备名,安卓手机可以随意填写
'appPackage': 'tv.danmaku.bili', # 启动APP Package名称
'appActivity': '.MainActivityV2', # 启动Activity名称
'unicodeKeyboard': True, # 自动化需要输入中文时填True
'resetKeyboard': True, # 执行完程序恢复原来输入法
'noReset': True, # 不要重置App
'newCommandTimeout': 6000,
'automationName' : 'UiAutomator2'
# 'app': r'd:\apk\bili.apk',
}
# 连接Appium Server,初始化自动化环境
driver = webdriver.Remote('http://localhost:4723/wd/hub',
options=UiAutomator2Options().load_capabilities(desired_caps))
# 设置缺省等待时间
driver.implicitly_wait(5)
# 如果有`青少年保护`界面,点击`我知道了`
iknow = driver.find_elements(By.ID, "text3")
if iknow:
iknow.click()
# 根据id定位搜索位置框,点击
driver.find_element(By.ID, 'expand_search').click()
# 根据id定位搜索输入框,点击
sbox = driver.find_element(By.ID, 'search_src_text')
sbox.send_keys('白月黑羽')
# 输入回车键,确定搜索
driver.press_keycode(AndroidKey.ENTER)
# 选择(定位)所有视频标题
eles = driver.find_elements(By.ID, 'title')
for ele in eles:
# 打印标题
print(ele.text)
input('**** Press to quit..')
driver.quit()
查看应用包名(apk名)
没有 apk,应用已经安装到手机上了,可以直接打开手机上的应用,进入你要操作的界面,执行
adb shell dumpsys activity recents | find "intent={"
有 apk 包
安卓 SDK 里面有个 aapt 工具
# 查看 package 名称
d:\tools\androidsdk\build-tools\29.0.3\aapt.exe dump badging d:\tools\apk\bili.apk | find "package: name="
# 输出
package: name='tv.danmaku.bili' versionCode='5531000' versionName='5.53.1' platformBuildVersionName='5.53.1' compileSdkVersion='28' compileSdkVersionCodename='9'
# 查看当前界面 activity
d:\tools\androidsdk\build-tools\29.0.3\aapt.exe dump badging d:\tools\apk\bili.apk | find "launchable-activity"
# 输出
launchable-activity: name='tv.danmaku.bili.MainActivityV2' label='' icon=''
定位元素
界面元素查看工具
类比 Selenium Web 用浏览器 F12来定位,Appium同样需要工具查看界面元素
- Android SDK包中的 uiautomatoreviewer
- Appium Desktop 中的 Appium Inspector