首页 > 编程语言 >《最新出炉》系列入门篇-Python+Playwright自动化测试-49-Route类拦截修改请求-下篇

《最新出炉》系列入门篇-Python+Playwright自动化测试-49-Route类拦截修改请求-下篇

时间:2024-05-29 09:33:37浏览次数:32  
标签:Playwright 请求 49 Python route request Route playwright page

1.简介

 在日常工作和学习中,自动化测试的时候:在加载页面时,可能页面出现很多不是很重要或者不是我们所关注的,这个时候我们就可以选择不加载这些内容,以提高页面加载速度,节省资源。例如:可能页面上图片比较多,而我们又不关心图片内容。那么,在加载页面时,可以选择不加载图片,以提高页面加载速度。这里我们主要用到一个Route类拦截修改请求 。

2.Route类语法

Route类介绍官方API的文档地址:https://www.cuketest.com/playwright/docs/api/class-route/

在Playwright中,`Route`类用于捕获和修改请求和响应。它允许您拦截和处理特定的网络请求,以模拟不同的行为或进行自定义操作。

您可以使用`page.route()`方法创建`Route`对象,并指定要拦截的请求URL或使用正则表达式进行匹配。

一旦创建了`Route`对象,您可以通过调用`route.continue()`、`route.fulfill()`或`route.abort()`来控制请求的进一步处理。

还可以通过`route.request()`和`route.response()`属性来访问请求和响应对象。

使用`Route`类,您可以拦截和修改网络请求,从而实现各种目的,如网络请求的模拟、修改请求头、延迟响应等。它是一个非常有用的工具,可用于各种Web自动化和测试场景中。

3.Route类方法

  • abort() 取消匹配的路由请求
  • fulfill(response) 伪造服务器返回数据,如body、headers等
  • continue(request) 伪造路由请求数据
  • fallback(request) 伪造路由请求数据,允许多次使用

3.1continue 

`route.continue(): Promise<void>` - 继续请求,使其按正常流程继续发送并接收响应。 

 如何使用`Route`类的`continue()`方法继续请求呢?

宏哥这里以这个dog的API:https://dog.ceo/api/breeds/list/all 为例,判断开头部分URL如果相同继续请求返回数据,如果不同则不会执行继续请求的操作。首先看一下API请求后的数据,如下图所示:

 

3.1.1代码设计

3.1.2参考代码
# coding=utf-8

标签:Playwright,请求,49,Python,route,request,Route,playwright,page
From: https://www.cnblogs.com/du-hong/p/18054043

相关文章

  • 用python字典统计CSV数据
    1.用python字典统计CSV数据的步骤和代码示例为了使用Python字典来统计CSV数据,我们可以使用内置的csv模块来读取CSV文件,并使用字典来存储统计信息。以下是一个详细的步骤和完整的代码示例:1.1步骤(1)导入csv模块。(2)打开CSV文件并读取数据。(3)初始化一个空字典来存储统计信息。......
  • 空转第三节课多样本整合的补充2(python版本)
    作者,EvilGenius大家国庆过得如何了?????如果很开心,不妨分享一下上一篇文章讲过了,对空间转录组进行整合分析,比较CCA和harmony的结果可以发现harmony整合的过程中把正常区域整合在了一起,而CCA在整合的过程把部分正常区域和部分肿瘤区域合并成了一个cluster。CCA对肿瘤区域的聚类......
  • python面向对象
    defydrz():print("引导入座")defdcd():print("递菜单")defdc():print("点餐")defgscscd():print("告诉厨师菜谱")defzc():print("做菜")defyc():print("用餐")defjscf():print(&qu......
  • (免费领源码)Java/Mysql数据库+01012大学生爱心互助代购网站,计算机毕业设计项目推荐上万
    摘 要在网络信息的时代,众多的软件被开发出来,给用户带来了很大的选择余地,而且人们越来越追求更个性的需求。在这种时代背景下,企业只能以用户为导向,按品种分类规划,以产品的持续创新作为企业最重要的竞争手段。系统采用了B/S结构,将所有业务模块采用以浏览器交互的模式,选择My......
  • (免费领源码)Java/Mysql数据库+00895springboot的校园二手书销售平台,计算机毕业设计项目
    本科学生毕业设计校园二手书销售平台设计与实现                院系名称:    计算机科学与技术学院    专业班级:                            学生姓名:                           ......
  • (免费领源码)Java/Mysql数据库+00750基于python的音乐电台推荐系统设计,计算机毕业设计项
    毕业设计(论文)Django音乐电台推荐系统学   院:                           专   业:                           年   级:                           姓   名:   ......
  • (免费领源码)Java/Mysql数据库+00485 个性化音乐推荐系统的设计与实现,计算机毕业设计项
    毕业设计(论文)NodeJS个性化音乐推荐系统学   院:                           专   业:                           年   级:                           姓   名:  ......
  • 《python编程从入门到实践》day41
    #昨日知识点回顾    用户注销、注册,限制访问,新主题关联到当前用户#今日知识点学习第20章设置应用程序的样式并部署20.1设置项目“学习笔记”的样式    20.1.1应用程序django-bootstrap4#settings.py---snip---INSTALLED_APPS=[#我的应......
  • 《python编程从入门到实践》day40
    #昨日知识点回顾    编辑条目及创建用户账户    暂没能解决bug:Theviewlearning_logs.views.edit_entrydidn'treturnanHttpResponseobject.ItreturnedNoneinstead.#今日知识点学习    19.2.5注销        提供让用......
  • 《python编程从入门到实践》day39加更
    #昨日知识点回顾    添加主题、条目#今日知识点学习    19.1.3编辑条目        1.URL模式edit——entry#learning_logs/urls.py---snip---#用于编辑条目的页面path('edit_entry/<int:entry_id>/',views.edit_entry,na......