Airtest+python自动化-绕过验证码

天在完成公司UI自动化时候碰到这样一个情况,使用chrome打开square系统后页面一直在加载,没有更新出来,同样的chrome领一个常用的却能够加载
在这里插入图片描述

图1为无法加载
在这里插入图片描述图2为正常加载

此时开始排查问题,首先发现airtest自动加载页面是一个default页面,该页面没有账号登陆,定位问题可能和账号权限有关,所以选择了绕过Google登陆,直接打开square页面
添加如下代码
options=webdriver.ChromeOptions()
options.add_argument("–user-data-dir=C:\Users\Mars.CNL-4P88XT2\AppData\Local\Google\Chrome\User Data")
driver = webdriver.Chrome(chrome_options=options)
driver.implicitly_wait(20)
试着执行自动化脚本,再次出现问题

======================================================================
ERROR: runTest (app.widgets.code_runner.ide_launcher.AirtestIDECase)

Traceback (most recent call last):
File “airtest\cli\runner.py”, line 65, in runTest
File “site-packages\six.py”, line 693, in reraise
File “airtest\cli\runner.py”, line 61, in runTest
File “C:\Users\Mars.CNL-4P88XT2\Desktop\SquareSearchName.air\SquareSearchName.py”, line 13, in
driver = webdriver.Chrome(chrome_options=options)
File “D:\AirtestIDE-win-1.2.5\AirtestIDE\selenium\webdriver\chrome\webdriver.py”, line 81, in init
desired_capabilities=desired_capabilities)
File “D:\AirtestIDE-win-1.2.5\AirtestIDE\selenium\webdriver\remote\webdriver.py”, line 157, in init
self.start_session(capabilities, browser_profile)
File “D:\AirtestIDE-win-1.2.5\AirtestIDE\selenium\webdriver\remote\webdriver.py”, line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File “D:\AirtestIDE-win-1.2.5\AirtestIDE\selenium\webdriver\remote\webdriver.py”, line 321, in execute
self.error_handler.check_response(response)
File “D:\AirtestIDE-win-1.2.5\AirtestIDE\selenium\webdriver\remote\errorhandler.py”, line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
(Driver info: chromedriver=2.37.544315 (730aa6a5fdba159ac9f4c1e8cbc59bf1b5ce12b7),platform=Windows NT 10.0.18363 x86_64)


Ran 1 test in 68.200s

FAILED (errors=1)
[Finished]

============================================================

chrome启动了但是没有输入url,需要再次排查。发现chromedriver版本显示2.37,该版本是下载airtest时自带的版本,排查是否chromedriver和chrome版本不匹配造成chrome crash了,查询chromedriver和chrome匹配表,发现chromedriver2.37对应的chrome版本时66,查询本机chrome版本为86,需要先匹配版本。
这里由于重新下载低版本的chrome需要删除原有的chrome,可能会造成自己的数据丢失,于是只能下载了最匹配86版本的chromedriver,替换原本airtest中的chromedriver,重新启动airtest后发现再次报错
在这里插入图片描述
网上查询发现也有网友出现类似情况,解决方案为复制user data数据,并将options改名到新地址,操作方式:复制user data为user data1
重新修改options代码
options=webdriver.ChromeOptions()
options.add_argument("–user-data-dir=C:\Users\Mars.CNL-4P88XT2\AppData\Local\Google\Chrome\User Data1")
driver = webdriver.Chrome(chrome_options=options)
driver.implicitly_wait(20)
保存脚本并启动,问题顺利解决

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值