当前位置: 首页 > news >正文

34-处理https 安全问题或者非信任站点-下

1.简介

  这一篇主要介绍playwright如何在Chrome和Firefox浏览器上处理不信任证书的情况,我们知道,有些网站打开是弹窗,SSL证书不可信任,但是你可以点击高级选项,继续打开不安全的链接。

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 上下文启动参数,语法如下:

# conftest.pyimport pytest@pytest.fixture(scope="session")
def browser_context_args(browser_context_args):return {**browser_context_args,"ignore_https_errors": True,}@pytest.fixture(scope="session")
def browser_context_args(browser_context_args):return {**browser_context_args,"viewport": {"width": 1920,"height": 1080,}}

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参考代码
# coding=utf-8🔥
import pytest
from playwright.sync_api import sync_playwrightdef test_example():with sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_context(ignore_https_errors=True,viewport={"width": 1920,"height": 1040,})page = page.new_page()page.goto("https://1**.2*#.12*.9&:8899")assert page.title() == "欢迎访问"page.wait_for_timeout(3000)browser.close()if __name__ == '__main__':pytest.main(["-v", "test_example.py"])
4.3运行代码

1.运行代码,右键Run'Test',控制台输出

5.小结

主要讲解和分享的是如何利用playwright中的pytest-playwright如何处理https错误的问题。到此遇到了类似的问题就可以参考方法就行解决了,这里仅仅讲解和分享了一下Chrome浏览器,其他的浏览器类似的处理方法,不过没有试过,不一定能成功

6.扩展

6.1codegen录制用例

很早之前就问到了录制遇到https报错,怎么办呢?今天就在这里提一下,会专门讲解录制,以及遇到https的解决方法:录制用例时,启动命令添加--ignore-https-errors。语法如下:

playwright codegen --ignore-https-errors https://example.com
http://www.lryc.cn/news/626976.html

相关文章:

  • TheadLocal相关
  • DOLO 或成 Berachain 生态迎新一轮爆发的信号?
  • C端高并发项目都有哪些
  • 源代码编译安装lamp
  • 单片机驱动继电器接口
  • 虚拟机部署HDFS集群
  • cobbler
  • 基于FPGA的实时图像处理系统(2)——VGA显示彩条和图片
  • [论文阅读] 人工智能 + 软件工程 | 从用户需求到产品迭代:特征请求研究的全景解析
  • 372. 超级次方
  • Flask 之 Request 对象详解:全面掌握请求数据处理
  • 解决前端项目启动时找不到esm文件的问题
  • STM32F407VGT6从零建立一个标准库工程模板+VSCode或Keil5
  • Spring Boot 定时任务与 xxl-job 灵活切换方案
  • 双分支混合光伏预测模型
  • 第5.7节:awk赋值运算
  • 技术半衰期悖论:AI时代“不可替代领域“的深耕地图
  • AIStarter服务器版深度解析:与桌面版对比,解锁云端AI开发新体
  • 如何代开VSCode的settigns.json文件
  • 【JavaEE】多线程(线程安全问题)
  • Gin传参和接收参数的方式
  • BM25 系列检索算法
  • 自学大语言模型之Transformer的Trainer
  • 工业电脑选得好生产效率节节高稳定可靠之选
  • 0基础安卓逆向原理与实践:第5章:APK结构分析与解包
  • 华为仓颉语言的class(类)初步
  • 比剪映更轻量!SolveigMM 视频无损剪切实战体验
  • 将集合拆分成若干个batch,并将batch存于新的集合
  • ubuntu下安装vivado2015.2时报错解决方法
  • 换根DP(P3478 [POI 2008] STA-StationP3574 [POI 2014] FAR-FarmCraft)