需求背景
使用 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')
def process_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://www.toymoban.com/news/detail-509938.html
参考
https://stackoverflow.com/questions/52633697/selenium-python-how-to-capture-network-traffics-response文章来源地址https://www.toymoban.com/news/detail-509938.html
到了这里,关于Python Selenium 抓取 network 网络请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!