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

news2024/11/17 21:27:51

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 错误,语法如下:

# 参数说明
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 错误,语法如下:

# 参数说明
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参考代码
# coding=utf-8🔥

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2023-11-17
@author: 北京-宏哥
公众号:北京宏哥
Project: 《最新出炉》系列初窥篇-Python+Playwright自动化测试-33-处理https 安全问题或者非信任站点
'''

# 3.导入模块
from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context(ignore_https_errors=True)
    page = context.new_page()
    page.goto("https://1**.2**.**5.90:8899")
    page.wait_for_timeout(3000)
    context.close()
    browser.close()
with sync_playwright() as playwright:
    run(playwright)
4.3运行代码

1.运行代码,右键Run'Test',控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作。如下图所示:

5.项目实战-page()中设置

那宏哥就趁热打铁,按照上边的思路,实践一下,看看到底行不行。

5.1代码设计

5.2参考代码
# coding=utf-8🔥

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2023-11-17
@author: 北京-宏哥
公众号:北京宏哥
Project: 《最新出炉》系列初窥篇-Python+Playwright自动化测试-33-处理https 安全问题或者非信任站点
'''

# 3.导入模块
from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    # context = browser.new_context()
    page = browser.new_page(ignore_https_errors=True)
    page.goto("https://1**.2**.1**.9*:8899")
    page.wait_for_timeout(3000)
    browser.close()
with sync_playwright() as playwright:
    run(playwright)
5.3运行代码

1.运行代码,右键Run'Test',控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作(可以跳过安全提示,成功访问到页面了)。如下图所示:

6.小结

到此遇到了类似的问题就可以参考宏哥的方法就行解决了,宏哥这里仅仅讲解和分享了一下Chrome浏览器,其他的浏览器类似的处理方法,不过宏哥没有试过,不一定能成功,有兴趣的童鞋或者小伙伴们可以尝试一下。

好了,时间不早了,今天就分享到这里,感谢大家耐心的阅读!!!

 每天学习一点,今后必成大神-

往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问)或者微信搜索: 北京宏哥  公众号提前解锁更多干货。

Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1476344.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis中的分布式锁(setIfAbsent)(expire)

目录 应用场景 代码实例1: 代码实例2: setIfAbsent: expire: 举例说明: 代码实例3: 代码实例4: 还是一个同事问的一个问题,然后闲着没事就记录下来了。多人操作同一个保单&a…

(Linux学习二)文件管理基础操作命令笔记

Linux目录结构: bin 二进制文件 boot 启动目录 home 普通用户 root 超管 tmp 临时文件 run 临时运行数据 var 日志 usr 应用程序、文件 etc 配置文件 dev 文件系统 一、基础操作 在 Linux 终端中,你可以使用以下命令来清屏: clear 命令&am…

ubuntu2204部署hbase2.3.7

开启root 修改root用户的密码 sudo passwd rootSSH放行 sudo sed -i s/^#\?PermitRootLogin.*/PermitRootLogin yes/g /etc/ssh/sshd_config; sudo sed -i s/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g /etc/ssh/sshd_config;重启服务 sudo service ssh…

IDEA利用鼠标调整字体大小

就可以按住ctrl和鼠标调节代码字体的大小啦! 如果有用,记得给我来个赞~ 谢啦!

什么是生成式人工智能?

近年来,人工智能取得了重大进展,其中发展迅速的领域之一就是生成式人工智能。生成式人工智能是人工智能和深度学习的一个子领域,主要使用机器学习技 术根据现有数据训练算法和模型,生成诸如图像、文本、音乐、视频等新内容。 要更…

nginx 反向代理 与缓存功能

一 理论说明 (一)反向代理简介 反向代理:reverse proxy,指的是代理外网用户的请求到内部的指定的服务器,并将数据返回给用户的一种方式,这是用的比较多的一种方式。 即 代理服务机 Nginx 除了可以在企…

linux系统-----------搭建LNMP 架构

PHP(Hypertext Preprocessor 超文本预处理器)是通用服务器端脚本编程语言,主要用于web开发实现动态web页面,也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。同时,php还提供了一个命令行接口,因此,其也可…

如何使用便签快速分类工作待办事项

在日常工作和生活中,我们经常需要处理各种各样的待办事项。而有效地分类这些任务,可以帮助我们更好地管理时间和提高工作效率。使用便签是一种简单而实用的方法,下面将介绍如何利用好用便签来快速分类工作待办事项。 首先,你可以…

软考中级1(数据库系统工程师)

1.程序计数器 保存待读取指令的地址 累加器 保存原操作数和结果 2.DMA方式不需要CPU,由DMA控制器直接控制数据的传送 3.数据位n位,校验位k位,海明码满足的关系:2^k-1>nk 4.高速缓存Cache:位于CPU和主…

大数据分布式计算工具Spark实战讲解

PySpark 什么是PySpark? Spark是Apache基金会旗下的顶级开源项目,用于对海量数据进行大规模分布式计算。 PySpark是Spark的Python实现,是Spark为Python开发者提供的编程入口,用于以Python代码完成Spark任务的开发 PySpark不仅可…

三天学会阿里分布式事务框架Seata-SpringCloud Alibaba分布式基础案例搭建

锋哥原创的分布式事务框架Seata视频教程: 实战阿里分布式事务框架Seata视频教程(无废话,通俗易懂版)_哔哩哔哩_bilibili实战阿里分布式事务框架Seata视频教程(无废话,通俗易懂版)共计10条视频&…

记录工作中遇见问题、学习项

1、判空操作 Demo demo Optional .ofNullable(demoService.getById(id)) .orElseThrow(() -> new ServiceException("不存在id为" id "的数据")); 2、SQL方面 1、group by : GROUP BY 子句必须放在 WHERE 子句中的条件之后&#…

网络:IPv6

1、由于IPv4地址资源枯竭,所以产生了IPV6。 版本长度地址数量IPv432 bit4 294 967 296IPv6128 bit340 282 366 920 938 463 374 607 431 768 211 456 2、IPv6的基本报头在IPv4报头基础上,增加了流标签域,去除了一些冗余字段,使报…

Apache SeaTunnel 及 Web 功能部署指南(小白版)

在大数据处理领域,Apache SeaTunnel 已成为一款备受青睐的开源数据集成平台,它不仅可以基于Apache Spark和Flink,而且还有社区单独开发专属数据集成的Zeta引擎,提供了强大的数据处理能力。随着SeaTunnel Web的推出,用户…

Python异步IO库之uvloop使用详解

概要 在Python中,异步编程已经成为处理高并发和IO密集型任务的主要方式之一。而uvloop库则是一个专门针对异步IO操作进行优化的库,它能够显著提高异步程序的性能。本文将深入探讨uvloop库的使用方法、功能特性以及如何利用它来加速异步IO编程。 什么是uvloop库? uvloop是一…

探讨:围绕 props 阐述 React 通信

在 ✓ 🇨🇳 开篇:通过 state 阐述 React 渲染 中,以 setInterval 为例,梳理了 React 渲染的相关内容。 📢 本篇会 ✓ 🇨🇳 围绕 props 阐述 React 通信 props React 组件使用 pro…

存储xss实现获取cookie(本地实战)

实战更能体验收获&#xff01;&#xff01;&#xff01; 环境准备&#xff1a; 1.phpstudy 2.dvwa靶场 实战 首先我们在phpstudy指定的localhost网站目录下编写一个xss.php文件&#xff0c;内容如下&#xff1a; <?php $cookie $_GET[cookie]; $ip getenv (REMOTE_…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的活体人脸检测系统(Python+PySide6界面+训练代码)

摘要&#xff1a;本篇博客详细讲述了如何利用深度学习构建一个活体人脸检测系统&#xff0c;并且提供了完整的实现代码。该系统基于强大的YOLOv8算法&#xff0c;并进行了与前代算法YOLOv7、YOLOv6、YOLOv5的细致对比&#xff0c;展示了其在图像、视频、实时视频流和批量文件处…

找出异常点 python

统计学方法 zscore 原理&#xff1a; Z-score 基于正态分布理论&#xff0c;它量化了数据点距离数据集平均值的相对标准偏差。 通常&#xff0c;如果 Z-score 的绝对值超过某个阈值&#xff08;如3或更大&#xff09;&#xff0c;该数据点就被认为是异常值。这是因为正态分布下…

【Spring】模拟 Spring 框架

Spring IoC 容器的实现原理&#xff1a;工厂模式 解析XML 反射机制 我们给自己的框架起名为&#xff1a;mySpring&#xff08;我的春天&#xff09; 一、创建 mySpring 模块 引入dom4j 和 jaxen 的依赖&#xff0c;因为要使用它解析XML文件&#xff0c;还有 junit 依赖 &l…