1

I am trying to dynamically capture some network calls on a page then process them in Selenium 4 (using C# and Chrome webdriver) however what I am observing is that once the page loads, future events are not captured. For instance, clicking a button after the page loads generates a network call which I can see in the Network tab of Chrome however I do not see the corresponding network call in collectorRequestEvents. Is this a bug of the system or am I going about capturing events in the wrong way? Any help would be appreciated! I would also be happy to provide more details!

    List<Network.RequestWillBeSentEventArgs> collectorRequestEvents;
    List<Network.ResponseReceivedEventArgs> collectorResponseEvents;

    private void Network_ResponseReceived(object sender, Network.ResponseReceivedEventArgs e)
    {
        if (e.Response.Url.ToLower().Contains("identifier"))
        {
            collectorResponseEvents.Add(e);
        }
    }

    private void Network_RequestWillBeSent(object sender, Network.RequestWillBeSentEventArgs e)
    {
        if (e.Request.Url.ToLower().Contains("identifier"))
        {
            collectorRequestEvents.Add(e);
        }
    }

    
    public void Test_Validation()
    {
        IDevTools devTools = browser.GetDriver as IDevTools;
        IDevToolsSession session = devTools.GetDevToolsSession();
        var domains = session.GetVersionSpecificDomains<DevToolsSessionDomains>();

        collectorRequestEvents = new List<Network.RequestWillBeSentEventArgs>();
        collectorResponseEvents = new List<Network.ResponseReceivedEventArgs>();

        domains.Network.RequestWillBeSent += Network_RequestWillBeSent;
        domains.Network.ResponseReceived += Network_ResponseReceived;
        domains.Network.Enable(new Network.EnableCommandSettings());

        browser.goTo(fullURL);
        //Click button which should cause another network event to be captured but doesn't
        //........
    }
Riko Hamblin
  • 71
  • 10

0 Answers0