针对此问题,可以使用uiautomator2作为解决方案,因为它支持测试应用程序中的Web元素。以下是使用uiautomator2的示例代码:
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
desired_caps = {
'platformName': 'Android',
'deviceName': 'deviceName',
'udid': 'deviceSerialNumber',
'noReset': True,
'appPackage': 'appPackage',
'appActivity': 'appActivity',
'automationName': 'uiautomator2'
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
context = driver.contexts[-1] # 获取当前应用的WEBVIEW_CONTEXT
driver.switch_to.context(context) # 切换到WEBVIEW_CONTEXT
# 在这里执行基于WebView的测试操作,例如:
driver.find_element_by_id('webview_element_id').click()
driver.switch_to.default_content() # 返回到Native应用程序的上下文
driver.quit() # 关闭驱动程序
此示例演示如何在WebView应用程序中使用uiautomator2查找元素并执行操作。