python+playwright 学习-81 page.expect_request()捕获网络请求

news/发布时间2024/5/19 7:36:03

前言

page.expect_request() 可以捕获网页上发出去的请求,当有多个请求时,可以根据请求url,请求方式判断。

expect_request

官方文档示例

with page.expect_request("http://example.com/resource") as first:page.get_by_text("trigger request").click()
first_request = first.value# or with a lambda
with page.expect_request(lambda request: request.url == "http://example.com" and request.method == "get") as second:page.get_by_text("trigger request").click()
second_request = second.value

expect_request 参数说明:
url_or_predicate : typing.Union[str, typing.Pattern[str], typing.Callable[["Request"], bool]]
请求URL字符串、正则表达式或接收Request参数的函数对象, 当通过上下文选项提供base_url并且传递的url是路径时,它将通过新的url()构造函数进行合并。
timeout: typing.Optional[float] = None 设置超时时间,默认30秒,单位毫秒, 传递0以禁用超时。可以使用page.set_default_timeout()方法更改默认值。

使用示例

示例代码

from playwright.sync_api import sync_playwright
# 上海悠悠 wx:283340479
# blog:https://www.cnblogs.com/yoyoketang/with sync_playwright() as p:browser = p.chromium.launch(headless=False)context = browser.new_context()page = context.new_page()page.goto("http://127.0.0.1:8000/login.html")page.locator('#username').fill('yoyo')page.locator('#password').fill('******')with page.expect_request('http://127.0.0.1:8000/api/login') as first:page.locator('#loginBtn').click()first_request = first.value# 接口请求对象print(first_request.url)print(first_request.method)# 获取接口返回内容resp = first_request.response()print(resp.status)print(resp.json())

运行结果

http://127.0.0.1:8000/api/login
POST
400
{'message': '用户名或密码不正确'}

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

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

4.6 Java成员方法的声明和调用

声明成员方法可以定义类的行为,行为表示一个对象能够做的事情或者能够从一个对象取得的信息。类的各种功能操作都是用方法来实现的,属性只不过提供了相应的数据。一个完整的方法通常包括方法名称、方法主体、方法参数和方法返回值类型,其结构如图 1 所示。 图 1 方法组成元…

app演唱会抢票全自动实现

抢票流程先去演唱会主页预选好场次、价格还有观演人,点击想看 (可选)手机后台杀掉大麦app任务 打开辅助app,给于对应权限 (可选)输入歌手名字,默认五月天 点击开抢按钮即可 如果点击开抢后,页面未开始自动跳转,可手动杀死大麦,再次切到辅助app点击开抢如果想终止辅助…

2023数据采集与融合技术实践作业一

作业1 实验要求 具体要求 用requests和BeautifulSoup库方法定向爬取给定网址的数据,屏幕打印爬取的大学排名信息。 输出信息排名 学校名称 省市 学校类型 总分1 清华大学 北京 综合 852.52...具体代码 import bs4 as bs import urllib.requesturl = "https://www.shangha…

shiro-721 CVE-2019-12422

漏洞描述Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。Shiro框架直观、易用,同时也能提供健壮的安全性。Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的c…

CentOS环境 nginx配置vue项目

nginx配置vue项目ps: 这里使用ruoyi-vue-plus项目举例,官网:https://plus-doc.dromara.org/ 一、配置不带应用路径的vue项目 1、打包。首先将vue项目生产配置文件的的应用访问路径设为/,然后命令行输入run run build:prod进行打包。2、导入环境。将打包文件(dist)拖入Cent…

2020ICPC区域赛南京站

2020ICPC区域赛南京站 K Co-prime Permutation 解题思路: 首先,根据样例2不难发现,\(k\)的下界为\(1\),因为1和排列中的任何数都会互质。 其次,我们考虑下上界大概是多少,也就是\(k = n\)是否一定合法。 假设,我们有一个初识排列\(p_i = i\).此时我们有\(1\)个元素和他的…