当前位置:   article > 正文

《最新出炉》系列初窥篇-Python+Playwright自动化测试-34-处理https 安全问题或者非信任站点-下篇

《最新出炉》系列初窥篇-Python+Playwright自动化测试-34-处理https 安全问题或者非信任站点-下篇

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 错误 。后来随着学习和了解还有一种方法:结合 pytest-playwright 用例插件。

3.1结合 pytest-playwright 用例插件

pytest-playwright 插件写自动化用例时,在conftest.py 中加入context 上下文启动参数,语法如下:

  1. # conftest.py
  2. import pytest
  3. @pytest.fixture(scope="session")
  4. def browser_context_args(browser_context_args):
  5. return {
  6. **browser_context_args,
  7. "ignore_https_errors": True,
  8. }
  9. @pytest.fixture(scope="session")
  10. def browser_context_args(browser_context_args):
  11. return {
  12. **browser_context_args,
  13. "viewport": {
  14. "width": 1920,
  15. "height": 1080,
  16. }
  17. }

pytest-playwright插件完美的继承了pytest 用例框架和playwright基础使用的封装,基本能满足工作中的常规需求了,不需要我们再做额外的插件开发。

3.1.1pytest-playwright 环境准备

Playwright 建议使用官方的 pytest-playwright 插件来编写端到端测试。它提供上下文隔离,开箱即用地在多个浏览器配置上运行。或者,您可以使用该库使用您喜欢的测试运行程序手动编写测试基础设施。Pytest 插件使用 Playwright 的同步版本,还有一个可通过库访问的异步版本。

开始安装 Playwright 并运行示例测试以查看它的实际效果。

3.1.2安装pytest-playwright

在Docs命令窗口输入如下命令:

pip install pytest-playwright

4.项目实战

4.1代码设计

4.2参考代码
  1. # coding=utf-8
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/175459
    推荐阅读
    相关标签