在chrome开发工具中,有一个选项可以捕获网络请求。 我想知道是否有任何方法可以在python中使用Selenium访问请求。 我已经搜索了该主题,但是找不到解决方案。其他图书馆的解决方案也适用!谢谢! (:
答案 0 :(得分:0)
Selenium 4实现了Chrome Dev Tools协议支持。但是,它仍处于alpha版本,因此,如果要在生产代码中使用它,请记住这一点。
以下是Automate the Planet的一些用法示例,您可能会有所帮助:
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;
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编辑它。