I need C# code to capture response from network tab in devtool.. in edge browser
IWebDriver driver = new EdgeDriver(@"C:/SS/Selenium/C#/edgedriver_win32");
driver.Manage().Window.Maximize();
// Navigate to the login page
driver.Navigate().GoToUrl("https://www.demoblaze.com/");
Thread.Sleep(1000);
// Locate the login elements and perform login
driver.FindElement(By.Id("login2")).Click();
Thread.Sleep(3500);
driver.FindElement(By.Id("loginusername")).Click();
Thread.Sleep(3500);
// locate login elements
driver.FindElement(By.Id("loginusername")).SendKeys("testuser321a"); Thread.Sleep(3500);
driver.FindElement(By.Id("loginpassword")).SendKeys("testuser"); Thread.Sleep(3500); Console.WriteLine("test here asdfasdfg");
driver.FindElement(By.XPath("//*[@id=\"logInModal\"]/div/div/div[3]/button[2]")).Click(); Thread.Sleep(3500);
//// click the login button
//loginbutton.Click();
Thread.Sleep(3500);
Console.WriteLine("test here 1324");
var devTools = (OpenQA.Selenium.DevTools.IDevTools)driver;
OpenQA.Selenium.DevTools.IDevToolsSession session = devTools.GetDevToolsSession();
var domains = session.GetVersionSpecificDomains<DevToolsSessionDomains>();
domains.Network.ResponseReceived += ResponseReceivedHandler;
System.Threading.Tasks.Task task = domains.Network.Enable(new Network.EnableCommandSettings());
task.Wait();
void ResponseReceivedHandler(object sender, Network.ResponseReceivedEventArgs e)
{
Console.WriteLine($"Status: {e.Response.Status} : {e.Response.StatusText} | File: {e.Response.MimeType} | Url: {e.Response.Url}");
}
Getting below error on this line of code:
OpenQA.Selenium.DevTools.IDevToolsSession session = devTools.GetDevToolsSession();
Error:
OpenQA.Selenium.WebDriverException: 'Unexpected error creating WebSocket DevTools session.' NullReferenceException: Object reference not set to an instance of an object.
using: Selenium.WebDriver Version="4.6.0" and .Net6.0
Tested in
Selenium 4.17.0+.Net 6.0+Microsoft Edge Driver 121.0.2277.112, your code did not throw 'Unexpected error creating WebSocket DevTools session.' You can upgrade your Selenium version to the latest and test again.The reason why you can't get the response is you are trying to receive response after the navigation completed and everything was fully loaded. No response is expected to be captured.
You only need to either:
task.Wait()driver.Navigate().Refresh()aftertask.Wait(), in order to refresh the page to recapture the response.