这个系统需求:进入页面默认请求了美国站的某个类目,然后我下边有几个判断,如果我切换到德国站,再点击,这份代码没有进行捕获点击之后的请求,我想要的是捕获点击之后的请求,目前使用打断点执行调试的话、结果是正常的,但是,如果使用用例直接执行的方式的话,捕获到的接口请求是错误的,不知道如何解决
![](https://profile-avatar.csdnimg.cn/0e995386242f462c954dcc1a87e32735_qq_60333107.jpg!4)
expect_request在playwright的拦截问题
这个系统需求:进入页面默认请求了美国站的某个类目,然后我下边有几个判断,如果我切换到德国站,再点击,这份代码没有进行捕获点击之后的请求,我想要的是捕获点击之后的请求,目前使用打断点执行调试的话、结果是正常的,但是,如果使用用例直接执行的方式的话,捕获到的接口请求是错误的,不知道如何解决
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注
引自强大而免费的微信小程序:皆我百晓生。
根据描述,你想要在切换到德国站并点击后捕获到点击后的请求。你可以使用Playwright的
expect_request
方法来拦截请求并获取请求信息。首先,确保你已经正确安装了Playwright,并导入所需的模块和类。以下是一个基本的示例代码,演示了如何在切换到德国站并点击后拦截请求:
import asyncio from playwright.async_api import async_playwright async def intercept_requests(): async with async_playwright() as p: browser = await p.chromium.launch() context = await browser.new_context() page = await context.new_page() # 在默认请求中设置 route 匹配逻辑 await page.route('**/*', handler=lambda request: request.continue_()) await page.goto('https://example.com') # 进入页面默认请求 # 切换到德国站 await page.goto('https://example.com/de') # 拦截并捕获点击后的请求 requests = [] def handle_request(route, request): requests.append(request) request.continue_() # 拦截所有请求 await page.route('**/*', handler=handle_request) # 点击操作 await page.click('your_selector') # 请替换为你的实际选择器 # 等待拦截到请求 await asyncio.sleep(1) # 如果需要等待一段时间获取更多请求,请相应调整等待时间 # 输出请求数据 for request in requests: print(request.url) await browser.close() asyncio.run(intercept_requests())
这个示例中,我们使用了Playwright的
route
方法来设置默认的请求匹配逻辑,然后通过handler
方法来继续请求。在切换到德国站之后,我们再次使用route
方法来拦截所有的请求,并使用handler
方法来捕获请求和继续请求。我们可以将捕获到的请求保存在列表中,并在操作完成后进行遍历,输出请求的URL等信息。请注意,这只是一个基本示例,你需要根据你实际的页面和操作进行相应的修改。另外,你可能需要根据实际情况来等待响应的时间。
希望这可以帮助到你!如果你有任何进一步的问题,请随时与我联系。
解决 无用评论 打赏 举报
悬赏问题
- ¥20 yolov5中train过程中,第一次完整训练的验证过程中,图像处理尺寸和设置尺寸不一致(设置尺寸失效)的问题
- ¥20 自建A网站如何调用B网站网页数据
- ¥15 在edge和chrome浏览器,怎么在新标签页打开链接
- ¥15 c#如何使用scottplot给已画好的自定义热度图,增加一个一定的colorbar
- ¥15 信贷平台.用户信用评估和风险评估怎么做,希望来个做过的Java.有合作的机会
- ¥15 IMageEN获得图形顶点坐标的问题
- ¥50 软件PC客户端抓包,获取http请求和响应
- ¥15 手机被安装黑客软件怎么办?
- ¥15 Windows C++ PaddleOcr 中文模型的训练方法
- ¥15 c# 用scottplot画 以时间为纵坐标,数值为横坐标画曲线图