电脑连接联想模拟器

https://www.cnblogs.com/balllyh/p/15742852.html
https://blog.csdn.net/m0_38019894/article/details/145555060

电脑连接联想模拟器

联想模拟器端口:11509

image

root 权限

image

安装 Android SDK

image
具体实现流程:
image
对于安卓 APP 的自动化,Appium Server 是需要 Android SDK 的。
因为要用到里面的一些工具,比如要执行命令:

  • 设置手机
  • 传送文件
  • 安装应用
  • 查看手机界面

配置 Android SDK
image
配置下 adb 命令环境变量
image
验证下
image

连接手机(模拟器)

image
开启 开发者模式
image
image
mumu浏览器(16384)
image
连了2个,但是 adb devices -l 只显示第一个
发现联想模拟器断了之后,mumu 浏览器也连不上,进一步排查:
image
打开 USB 调试功能
image

进一步测试(就相当于你用 usb 连接手机,然后开启手机的开发者选项了)

关机后,再进行尝试

adb devices

image

adb devices -l

image
使用新的 venv 使用 python10
image
环境变量和 PATH 顺序有关
image

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={"

image
image

有 apk 包

安卓 SDK 里面有个 aapt 工具
image

# 查看 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
posted @ 2025-08-16 16:55  爱新觉罗LQ  阅读(43)  评论(0)    收藏  举报