我目前正在研究 selenium 。我需要捕获所有的网络请求,以便在Chrome DevTools中看到它们。有办法做到这一点吗?
RequestIntercepted
事件没有帮助
过去几天我一直在寻找解决办法,但一无所获。我也很感激其他图书馆的建议。
我需要:执行某些命令或脚本(如在Selenium中),拦截网络请求。
我的代码:
Imports OpenQA.Selenium
Imports OpenQA.Selenium.Chrome
Imports OpenQA.Selenium.DevTools
Imports OpenQA.Selenium.DevTools.V107.Network
Public Class SeleniumTest
Private Driver As OpenQA.Selenium.IWebDriver
Private Session As OpenQA.Selenium.DevTools.DevToolsSession
Private WithEvents Network As OpenQA.Selenium.DevTools.V107.Network.NetworkAdapter
Public Async Sub Load(Url As String)
Driver = New ChromeDriver(New ChromeOptions)
Dim DevTools As IDevTools = Driver
Session = DevTools.GetDevToolsSession()
Network = Session.GetVersionSpecificDomains(Of OpenQA.Selenium.DevTools.V107.DevToolsSessionDomains).Network
Await Network.Enable(New EnableCommandSettings())
Driver.Navigate.GoToUrl(Url)
End Sub
Public Sub Click()
Try
Dim elem As IWebElement = Driver.FindElement(By.ClassName("video-holder"))
elem.Click()
Catch ex As Exception
End Try
End Sub
Private Sub Network_ResponseReceived(sender As Object, e As ResponseReceivedEventArgs) Handles Network.ResponseReceived
Debug.WriteLine(e.Response.Url)
End Sub
End Class
1条答案
按热度按时间vfhzx4xs1#
有一种简单的方法可以通过selenium捕获网络调用。我目前使用的是
Selenium 4.6.0
和.NET 7
。您需要从devtools会话启用网络并订阅
DevToolsEventReceived
: