1、说明
场景:手机端浏览器
注意:被测app信息改成:'browserName':'Chrome',
1、用到的工具: appium + webdriver(匹配手机浏览器版本)
2、手机浏览器和PC浏览器使用的驱动都是相同的,只需要选择符合该浏览器版本的驱动就可以。(手机端安装的浏览器版本和配置的驱动版本一致,我这里用到的是 chrome-81)
3、建议用谷歌浏览器,因为对自动化适配最好。
4、此时和手机产生了关联,所以涉及到appium。
5、手机上自动化网页需要选择合适的浏览器->Chrome。
6、手动安装谷歌浏览器,先下载apk到电脑上。
adb install C:\Tools\apk\chrome-81-0-4044-138.apk
2、代码演示
# 配置项 注:这里的配置项和完全自动化app的配置有些区别。
desired_caps = {
"platformName": "Android",
"platformVersion": "11",
"deviceName": "Redmi Note 11 Pro",
# 被测app信息-仅限chrome浏览器
'browserName': 'Chrome',
'newCommandTimeout': 6000,
# 确保自动化之后不重置app
'noReset': True,
# 底层驱动
'automationName': 'UiAutomator2',
# 指定chromedriver
# 方式1 指定webdriver 存放目录
'chromedriverExecutableDir': 'D:\chromedriver\chromedriver_win32_v81' # 正确写法
# 方式2 指定webdriver 可执行文件路径
# 'chromedriverExecutable':'D:\chromedriver\chromedriver_win32_v81\chromedriver.exe'
# 两种方式选择1种即可
}
from appium import webdriver
# 启动设备
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
driver.implicitly_wait(10)
# 手机网页自动化
# 打开百度页面
driver.get('https://www.baidu.com/')
# 查看当前app的context(appium操作的作用域)
# context-NATIVE_APP # 只能操作原生控件
# context-WEBVIEW_包名 # 只能操作web元素
# 查看context的名称
print(driver.contexts)
# 返回 ['NATIVE_APP', 'CHROMIUM']
# 当前处于哪个context?
print(driver.current_context)
# 返回 CHROMIUM
# 设置浏览器窗口大小, 手机浏览器无法设置大小。
# driver.set_window_size(480,800)
# 搜关键字"青花瓷",\n 回车
driver.find_element_by_id('index-kw').send_keys('青花瓷\n')
# 判断第一个搜索结果
res = driver.find_element_by_css_selector('.c-title-text').text
print(res)
# 校验
assert '青花瓷' in res
# driver.quit()