【问题标题】:Capture network requests using selenium使用 selenium 捕获网络请求
【发布时间】:2020-09-22 09:51:54
【问题描述】:

在 chrome 开发工具中,有一个捕获网络请求的选项。 我想知道是否有任何方法可以在 python 中使用 selenium 访问请求。

我已经搜索过这个主题,但我找不到解决方案。其他库的解决方案也很受欢迎!

请求截图:

具体请求信息:

【问题讨论】:

标签: python python-3.x selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

Selenium 4 实现了 Chrome 开发工具协议支持。但是,它仍处于 alpha 版本,因此如果您打算在生产代码中使用它,请记住这一点。

以下是来自Automate the Planet 的一些示例用法,您可能会觉得有帮助:

1。拦截请求

EventHandler<RequestInterceptedEventArgs> requestIntercepted = (sender, e) =>
{
    Assert.IsTrue(e.Request.Url.EndsWith("jpg"));
};
            
RequestPattern requestPattern = new RequestPattern();
requestPattern.InterceptionStage = InterceptionStage.HeadersReceived;
requestPattern.ResourceType = ResourceType.Image;
requestPattern.UrlPattern = "*.jpg";
var setRequestInterceptionCommandSettings = new SetRequestInterceptionCommandSettings();
setRequestInterceptionCommandSettings.Patterns = new RequestPattern[] { requestPattern };
devToolssession.Network.SetRequestInterception(setRequestInterceptionCommandSettings);
devToolssession.Network.RequestIntercepted += requestIntercepted;

2。收听控制台日志

EventHandler<MessageAddedEventArgs> messageAdded = (sender, e) =>
{
    Assert.AreEqual("BELLATRIX is cool", e.Message);
};
devToolssession.Console.Enable();
devToolssession.Console.ClearMessages();
devToolssession.Console.MessageAdded += messageAdded;
_driver.ExecuteScript("console.log('BELLATRIX is cool');");

注意:这是 Java 实现,您应该为 Python 编辑它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-31
    • 2016-08-13
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    • 2021-04-14
    相关资源
    最近更新 更多