从网络选项卡中的标头获取请求 URL,并存储到字符串中

问题描述 投票:0回答:1

我正在使用 Selenium 来测试根据所选参数生成报告。当我的测试单击“获取报告”按钮时,会生成一份报告,但作为图像,因此我无法检查我之前选择的参数是否是通过 Web 元素呈现的参数,就像通常在硒。我能做的就是获取 API 响应正文,并对其进行断言,但我必须对请求 URL 进行硬编码,因为我无法找到一种从“网络”选项卡中单击按钮动态获取它的方法。请求 URL 有一个包含日期和时间的查询字符串,所以我不能只是将其硬编码为字符串,我需要能够动态获取它,将其存储到一个字符串中,然后我可以将其传递到我的然后获取 API 响应的函数。

这可以吗?如果可以,在 C# 中执行此操作的正确方法/方式是什么?

c# selenium-webdriver selenium-chromedriver xmlhttprequest http-headers
1个回答
0
投票

只是想更新这个,以防万一这是其他人需要答案的问题,但我设法找到了解决方案:

        IDevTools devTools = (IDevTools)driver;
        DevToolsSession session = devTools.GetDevToolsSession();
        var domains = session.GetVersionSpecificDomains<DevToolsSessionDomains>();
        await domains.Network.Enable(new EnableCommandSettings());
        domains.Network.Session.DevToolsEventReceived += Session_DevToolsEventReceived;
        driver.FindElement(By.CssSelector("getResultsBtn")).Click();

        static void Session_DevToolsEventReceived(object? sender, DevToolsEventReceivedEventArgs e)
        {
            _url ??= e.EventData["documentURL"]?.ToString();
        }
© www.soinside.com 2019 - 2024. All rights reserved.