Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应

这篇具有很好参考价值的文章主要介绍了Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用 Selenium 进行自动化操作时,会存在很多的特殊场景,比如会修改请求参数、响应参数等。

本篇将介绍一款 Selenium 的扩展,即能够检查浏览器发出的请求和响应 - Selenium Wire。

简介

Selenium Wire 扩展了 Selenium 的 Python 绑定,可以访问浏览器发出的底层请求。除了与 Selenium 相同的方式编写代码,还提供了额外的 API 来检查请求和响应,并对其进行动态更改。

特点:

1、Python,提供友好的 API 方法

2、捕获 HTTP 和 HTTPS 请求

3、拦截请求和响应

4、动态修改标题、参数和正文内容

5、捕获 websocket 消息

6、支持 HAR 格式

7、支持代理服务器

兼容性:

1、Python 3.7+

2、Selenium 4.0.0+

3、支持 Chrome、Firefox、Edge 和远程网络驱动程序

github地址:

https://github.com/wkeeling/selenium-wire

安装

使用 pip 安装:

pip install selenium-wire

与使用 Selenium 一样,下载指定的浏览器驱动到系统的环境变量里即可。

同时,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档

软件测试视频教程观看处:

2024年Python自动化测试全套保姆级教程,70个项目实战,3天练完,永久白嫖...

快速上手

1、简单示例:

像直接使用 Selenium 一样实例化 web 驱动程序,通过 requests 属性访问请求。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公众号:互联网杂货铺
 
from seleniumwire import webdriver
 
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
for request in driver.requests:
    if request.response:
        print(
            request.url,
            request.response.status_code,
            request.response.headers['Content-Type']
        )

执行结果:

分别打印出请求URL、响应状态码、响应头的内容类型。

Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应,python,软件测试,自动化测试,测试工具,selenium,职场和发展

2、添加请求头示例:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公众号:互联网杂货铺
 
from seleniumwire import webdriver
 
driver = webdriver.Chrome()
 
def interceptor(request):
    request.headers['New-Header'] = 'Meng'
 
driver.request_interceptor = interceptor
driver.get('https://httpbin.org/headers')

执行结果:

浏览器打开 URL 后,可以看到添加的请求头信息。

Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应,python,软件测试,自动化测试,测试工具,selenium,职场和发展

3、替换现有请求头示例:

URL 原始请求头信息。

Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应,python,软件测试,自动化测试,测试工具,selenium,职场和发展

# -*- coding: utf-8 -*-
# 公众号:互联网杂货铺
 
from seleniumwire import webdriver
 
driver = webdriver.Chrome()
 
def interceptor(request):
    del request.headers['Sec-Fetch-User']
    request.headers['Sec-Fetch-User'] = 'Meng'
 
driver.request_interceptor = interceptor
driver.get('https://httpbin.org/headers')

执行结果:

请求头 Sec-Fetch-User 的值由原来的 ?1 更改为 Meng。

Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应,python,软件测试,自动化测试,测试工具,selenium,职场和发展

4、添加响应头示例:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公众号:互联网杂货铺
 
from seleniumwire import webdriver
 
driver = webdriver.Chrome()
 
def interceptor(request, response):
    if request.url == 'https://www.baidu.com/':
        response.headers['New-Header'] = 'Meng'
 
driver.response_interceptor = interceptor
driver.get('https://www.baidu.com/')
 
for request in driver.requests:
    if request.response:
        print(request.response.headers)

执行结果:

打印的响应请求头信息里可以看到已经添加指定的请求头信息。

Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应,python,软件测试,自动化测试,测试工具,selenium,职场和发展

5、添加请求参数示例:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公众号:互联网杂货铺
 
from seleniumwire import webdriver
 
driver = webdriver.Chrome()
 
def interceptor(request):
    params = request.params
    params['New-param'] = 'Meng'
    request.params = params
 
driver.request_interceptor = interceptor
driver.get('https://httpbin.org/get')

执行结果:

通过页面的信息可以看到请求的参数添加成功。

Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应,python,软件测试,自动化测试,测试工具,selenium,职场和发展

6、模拟响应示例:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公众号:互联网杂货铺
 
from seleniumwire import webdriver
 
driver = webdriver.Chrome()
 
def interceptor(request):
    if request.url == 'https://www.baidu.com/':
        request.create_response(
            status_code=200,
            headers={'Content-Type': 'text/html'},
            body='<html> Hello World! --- Meng </html>'
        )
 
driver.request_interceptor = interceptor
driver.get('https://www.baidu.com/')

执行结果:

返回设置的响应结果。

Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应,python,软件测试,自动化测试,测试工具,selenium,职场和发展

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应,python,软件测试,自动化测试,测试工具,selenium,职场和发展

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应,python,软件测试,自动化测试,测试工具,selenium,职场和发展

 文章来源地址https://www.toymoban.com/news/detail-763396.html

到了这里,关于Selenium Wire - 扩展 Selenium 能够检查浏览器发出的请求和响应的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网站是如何进行访问的?在浏览器地址栏输入网址并回车的一瞬间到页面能够展示回来,经历了什么?

    这个问题是检验web和计网学习程度的经典问题。 网站访问流程: 1) 在输入完一个域名之后,首先是检查浏览器自身的DNS缓存是否有相应IP地址映射,如果没有对应的解析记录,浏览器会查找本机的hosts配置文件(一般是C:WindowsSystem32driversetchosts,这个文件是用于在操作系统

    2024年02月14日
    浏览(33)
  • selenium 驱动 Edge浏览器,解决selenium打开Edge浏览器闪退问题

    1、在设置中查看浏览器的版本号 2、在官网中进行对应下载 Microsoft Edge WebDriver - Microsoft Edge Developer 1、打开设置界面 右击【此电脑】---选择【属性】----选择【高级系统设置】-----点击【环境变量】 2、变量设置 在【系统变量】选项中,选择【Path】----》点击新建 将Edge浏览器

    2024年02月05日
    浏览(44)
  • 使用Selenium需要浏览器驱动与浏览器版本统一

    安装浏览器驱动 针对不同的浏览器,需要安装不同的驱动。 这里以安装 Chrome 驱动作为演示。 确定浏览器版本 进入设置界面,然后选择 【关于 Chrome】 查看自己的版本信息。这里我的版本是114,下载对应版本的 Chrome 驱动即可。 下载驱动 打开Chrome驱动。单击对应的版本。(

    2024年02月08日
    浏览(38)
  • 利用浏览器扩展程序搭建免费聊天机器人

    您的“关注”和“点赞”,是认可,是支持,是动力。 如意见相佐,可留言。 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新。 本文首发在老羊博客网站平台。 《老羊博客》,网址:https://www.laoyangboke.com 老羊博客是一个专注于科技、信息技术和计算机

    2024年02月12日
    浏览(33)
  • edge浏览器被恶意插件劫持,不能删除由组织安装的扩展,提示您的浏览器由您的组织管理

    edge右键插件,发现没有删除选项 浏览器输入 edge://extensions/ 提示您的浏览器由您的组织管理,并且不能删除和关闭插件的使用 在详细信息中有该插件id,复制 打开注册表编辑器,搜索复制的id 直接右键删除对应键值 一直f3查找下一个,直到搜索不到为止 之后重启浏览器扩展

    2024年02月05日
    浏览(70)
  • 【Selenium】浏览器配置

    通过selenium启动浏览器是,会发现是启动的一个新的浏览器,我们的一些登录信息,浏览器配置都会清楚,通过执行比较不方便,那么这一篇就简单介绍下如何配置Chrome浏览器的配置。 配置浏览器信息 在配置之前,首先查看下浏览器的信息,这样方便下一步进行配置,最主要

    2024年02月12日
    浏览(38)
  • selenium无头浏览器

    无头浏览器,也是通过selenium操作浏览器,但是浏览器不弹出来的意思 需要用到这个:

    2024年02月11日
    浏览(40)
  • selenium 浏览器(1)

    概述 Selenium支持市场上所有主要浏览器,如Chrome、Firefox、Internet Explorer、Edge、Opera和Safari。WebDriver尽量使用浏览器内置的自动化支持来驱动浏览器。 selenium对浏览器的操作主要包括打开关闭浏览器,获取浏览器的信息(比如标题、网址等),定位网页中的元素,远程操控浏览

    2024年02月05日
    浏览(30)
  • selenium 浏览器托管

    selenium 浏览器托管,是启动一个浏览器,调试代码,可以运行当前调试代码,不用从启动浏览器开始从头执行 在谷歌浏览器chrome.exe 目录中打开cmd 输入下面目录,启动器浏览器 –remote-debugging-port=9222 指定连接浏览器的端口 –user-data-dir=\\\"C:selenumAutomationProfile,指定保存浏览器

    2024年02月16日
    浏览(25)
  • 网络正常,“但”edge浏览器网页拒绝访问请“检查代理”,解决方案-DNS设置

    进行电脑大更新以后,本人在使用电脑时出现了这样的状况: 在网络上寻求许久,才找到解决办法,与大家分享一下: 首先打开右下角网络图标,点击“网络和Internet设置”; 选择“以太网”,点击“更改适配器选项”; 选择当前链接的网络适配器,我的是“WLAN”,右键点

    2024年02月11日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包