0


Python Selenium 抓取 network 网络请求

需求背景

使用 Python + Selenium 进行 UI 自动化测试时,需要根据 api 接口的返回信息(比如创建接口返回的对象编号或者 id),进行下一步的测试。
手工测试时,会根据创建时间或者其它业务信息综合判断,来找到刚刚提交的信息。但是自动化测试在并发测试的时候就容易判断错误。

解决方案

import json
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities.CHROME
caps['goog:loggingPrefs']={'performance':'ALL'}
driver = webdriver.Chrome(desired_capabilities=caps)
driver.get('https://stackoverflow.com/questions/52633697/selenium-python-how-to-capture-network-traffics-response')defprocess_browser_log_entry(entry):
    response = json.loads(entry['message'])['message']return response

browser_log = driver.get_log('performance') 
events =[process_browser_log_entry(entry)for entry in browser_log]
events =[event for event in events if'Network.responseReceived'in event['method']]

driver.execute_cdp_cmd('Network.getResponseBody',{'requestId': events[0]["params"]["requestId"]})

此处 206 为浏览器第一个 network 示例,可以通过遍历 events ,根据 url 来确定需要抓取的网络请求
在这里插入图片描述

参考

https://stackoverflow.com/questions/52633697/selenium-python-how-to-capture-network-traffics-response


本文转载自: https://blog.csdn.net/jiangshanwe/article/details/127442406
版权归原作者 蒋桐城 所有, 如有侵权,请联系我们删除。

“Python Selenium 抓取 network 网络请求”的评论:

还没有评论