解析Chrome Devtools协议网络JSON响应

2024-05-13 08:47:39 发布

您现在位置:Python中文网/ 问答频道 /正文

使用python/selenium和Chrome Devtools协议,我将进入我的网页,查看Chrome Devtools中发生的所有网络事件。页面加载时会触发很多事件。我想断言JSON结果包含某个键:值对和POST方法

目前使用我的脚本,它会返回一些JSON响应。由于我来自Ruby,我的Python技能有些欠缺。我真正需要做的就是断言响应包含某些内容。也许我需要将响应转换为字符串,然后使用selenium进行断言,我不确定

下面的大部分代码来自教程。我知道输出功能就是将结果打印到终端的功能。tab.set_listener("Network.requestWillBeSent", output)来自chromedevtools协议。任何关于如何使用selenium断言响应体包含特定字符串的帮助都是非常好的

这可能不太难,但我就是想不出来。非常感谢

import pychrome
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager


def output(**kwargs):
    print(kwargs)


options = webdriver.ChromeOptions()
options.add_argument("--remote-debugging-port=8000")
driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=options)

dev_tools = pychrome.Browser(url="http://localhost:8000")
tab = dev_tools.list_tab()[0]
tab.start()

tab.call_method("Network.enable", _timeout=20)
tab.set_listener("Network.requestWillBeSent", output)

driver.get("https://mywebsite.com")

driver.quit()

Tags: 字符串importjson协议outputdriverselenium事件