1.简介
这一篇宏哥主要介绍playwright如何在IE、Chrome和Firefox三个浏览器上处理不信任证书的情况,我们知道,有些网站打开是弹窗,SSL证书不可信任,但是你可以点击高级选项,继续打开不安全的链接。举例来说,想必大家都应该用过前几年的12306网站购票,点击新版购票,是不是会出现如下的界面。宏哥又找了一个https的页面,不过现在这种网站很少了,主要原因就是大家越来越觉得安全的重要性,想要找到这么个网站可是不容易,费了好久,一个客户的VPN刚好是这种情况,如下图所示:
2.三种浏览器如何处理不受信任的证书
在selenium三种浏览器访问网页,弹出证书不信任,需要点击下信任继续访问才行,多为访问https的网页。那么我们在做自动化测试的时候,如何跳过这一步骤,直接访问到我们需要的页面了,这个就是宏哥主要分享和讲解的如何在三大浏览器跳过这一步骤。因此宏哥在playwright中也觉得类似差不多,但是代码写完后,宏哥直接傻眼了,完全不一样啊!!!playwright直接都没有访问到那个安全提示的页面,就报错了:playwright._impl._api_types.Error: net::ERR_CERT_AUTHORITY_INVALID at。
3.解决方案
1.宏哥网上查了有关资料说是有关证书安全或则信任的错误,那么遇到这种我们怎么处理呢???首先确定的之前那种定位到【详细信息】,点击,然后再定位到【转到此网页(不推荐)】点击的方法不能用了,因为根本就没有访问到这个页面,怎么定位点击。
2.既然第一种不行,那就另辟蹊径,看看这种方法:playwright 设置 ignore_https_errors 参数忽略 SSL 错误 。
3.1context上下文中设置
context()设置 ignore_https_errors 参数忽略 SSL 错误,语法如下:
代码语言:javascript复制# 参数说明
ignore_https_errors=True 访问https地址解决安全证书
viewport={"width": 1920, "height": 1080} 最大化打开浏览器,参数可设置。
eg:
context = browser.new_context(ignore_https_errors=True, viewport={"width": 1920, "height": 1080})
3.2page()中设置
page()设置 ignore_https_errors 参数忽略 SSL 错误,语法如下:
代码语言:javascript复制# 参数说明
ignore_https_errors=True 访问https地址解决安全证书
viewport={"width": 1920, "height": 1080} 最大化打开浏览器,参数可设置。
eg:
page = browser.new_page(ignore_https_errors=True, viewport={"width": 1920, "height": 1080})
4.项目实战-context上下文中设置
4.1代码设计
4.2参考代码
代码语言:javascript复制# coding=utf-8