appium自动化对已打开的app操作
一、说明
由于 Appium 4.x 版本对会话的管理方式发生了变化,直接重用会话的功能可能不再支持。你可能需要调整测试策略,采用新的方法与已经打开的应用进行交互,比如使用 ADB,就为了找这个我找了很久网上都没有说明,老版本的appium支持对session重复使用,也就是操作之前的session即可,这个目的主要是为了调试方便使用
二、adb操作:
你可以通过 ADB(Android Debug Bridge)直接与已经打开的应用进行交互。以下是一些常用的 ADB 命令示例,类似这种直接操作元素:
-
输入文本:
adb shell input text "你的文本"
-
点击元素(根据元素的坐标):
adb shell input tap x y
三、appium操作:
其实很简单,就是直接不打开任何app,直接和对应设备建立连接操作即可:
from appium import webdriver
# 使用有效的能力
desired_caps = {
'platformName': 'Android',
'deviceName': '你的设备名称',
# 不需要提供 app,因为应用已经打开
}
# 尝试连接到已打开的会话(可能有限支持)
driver = webdriver.Remote('http://localhost:4723/wd/hub', UiAutomator2Options().load_capabilities(desired_caps))
# 进行操作,例如查找元素和点击
element = driver.find_element("xpath", "//android.widget.Button[@text='按钮文本']")
element.click()