Appium多个测试用例执行时如何保持Chrome浏览器登录状态?
解决安卓模拟器Chrome测试保持登录状态方案
1. 修正desired capabilities参数类型
你当前的noReset参数传的是字符串值,Appium对该参数的识别要求是布尔类型,字符串格式的'true'不会生效,修改为:
desired_caps['noReset'] = True desired_caps['fullReset'] = False
2. 补充禁用Chrome数据清除的专属配置
安卓端Chromedriver默认会在启动时清除临时数据,需要额外添加配置项跳过数据清理流程:
# 禁止Chromedriver启动时清除浏览器数据 desired_caps['chromeOptions'] = { 'args': [ '--user-data-dir=/data/data/com.android.chrome/app_chrome/Profile', '--no-first-run', '--no-default-browser-check' ], 'excludeSwitches': ['enable-automation', 'clear-data-on-exit'] } # 额外禁止Appium重置Chrome应用数据 desired_caps['appPackage'] = 'com.android.chrome' desired_caps['appActivity'] = 'com.google.android.apps.chrome.Main' desired_caps['dontStopAppOnReset'] = True
3. 验证配置生效逻辑
- 首次启动driver完成登录后,先确认Chrome的profile目录下已生成登录态的cookie、本地存储数据,再执行后续操作
- 后续测试启动driver时,Appium会直接复用已有的Chrome进程和profile数据,不会清空已有配置
4. 特殊情况处理
如果修改后还是存在数据被清空的情况,可以提前手动在模拟器的Chrome中完成一次登录,再运行测试脚本,保证profile目录下已有有效登录数据,避免首次启动的初始化逻辑覆盖配置。
内容的提问来源于stack exchange,提问作者mzg
相关产品推荐
相关产品推荐

