Почему в массиве максимум [13]?

Я пытаюсь отследить request headers, для этого я использую selenium https://pastebin.com/VyKYe6rP вот здесь подробно все есть, все работает хорошо, но в result у меня максимальное количество объектов 13.

 public partial class MainForm : Form
    { 
        public MainForm()
        {
            InitializeComponent();
        }

      
        private static IWebDriver Driver = null;
        private static IDevTools Tools = null;
        private static IDevToolsSession Session = null;
        private static DevToolsVer.DevToolsSessionDomains Domains = null;

        //private static ConcurrentBag<Task<Response>> CollectionXHR = null;
        private static ConcurrentBag<Task<Response>> CollectionXHR = null;

        public struct Response
        {
            public string RequestId { get; set; }
            public string ResponseUrl { get; set; }
            public long ResponseStatus { get; set; }
            public bool ResponseBodySuccess { get; set; }
            public string ResponseBody { get; set; }
            public object Headers { get; set; }
        }
        public struct Request
        {
            public string RequestId { get; set; }
            public string RequestURL { get; set; }
            public long Status_Code { get; set; }
            public bool ResponseBodySuccess { get; set; }
            public string RequestBody { get; set; }
            public object Headers { get; set; }
        }

        private /*static*//* async Task*/ void Main()
        {
            // Инициализация

            Driver = new ChromeDriver();
            Driver.Manage().Timeouts().ImplicitWait = new TimeSpan(0, 0, 10);
            Driver.Manage().Timeouts().AsynchronousJavaScript = new TimeSpan(0, 0, 30);
            Driver.Manage().Timeouts().PageLoad = new TimeSpan(0, 0, 30);
            Driver.Manage().Window.Maximize();
            
            Tools = Driver as IDevTools;
            
            Session = Tools.GetDevToolsSession();
            
            Domains = Session.GetVersionSpecificDomains<DevToolsVer.DevToolsSessionDomains>();
            /*await*/ Domains.Network.Enable(new DevToolsVer.Network.EnableCommandSettings());

            // Подготавливаем хранилище данных
            CollectionXHR = new ConcurrentBag<Task<Response>>();

            // Включаем запись получаемых данных
            Domains.Network.ResponseReceived += ResponseReceived;

            // Какие-то действия на сайте
            Web();

            // Отключаем запись получаемых данных
            Domains.Network.ResponseReceived -= ResponseReceived;

            // Ожидаем завершение извлечения полученных данных
            Task.WaitAll(CollectionXHR.ToArray());

            // Количество неудачных извлечений полученных данных 
            //var failResponseBody = CollectionXHR.Where(w => w.Result.ResponseBodySuccess == true).Count();
            var failResponseBody = CollectionXHR.Where(w => w.Result.ResponseBodySuccess == true).Count();

            // Выводим данные неудачных извлечений полученных данных 
            string failDescr = string.Empty;
            foreach (var i in CollectionXHR.Where(w => w.Result.ResponseBodySuccess == true).ToList())
            {
                failDescr += $"RequestId = {i.Result.RequestId} | ResponseStatus = {i.Result.ResponseStatus} | ResponseBody = {i.Result.ResponseBody} | Test = {"{"+i.Result.Headers+"}"} \n";
                Console.WriteLine(failDescr);
            }
        }

        private static void ResponseReceived(object sender, DevToolsVer.Network.ResponseReceivedEventArgs e)
        {
            if (e.Type == DevToolsVer.Network.ResourceType.XHR)
            {
                CollectionXHR.Add(GetResponseBodyAsync(e));
            }
        }

        private static async Task<Response> GetResponseBodyAsync(DevToolsVer.Network.ResponseReceivedEventArgs e)
        {
            try
            {
                var cmd = new DevToolsVer.Network.GetResponseBodyCommandSettings();
                cmd.RequestId = e.RequestId;

                var data = await Domains.Network.GetResponseBody(cmd);

                return new Response()
                {
                    RequestId = e.RequestId,
                    ResponseUrl = e.Response.Url,
                    ResponseStatus = e.Response.Status,
                    ResponseBodySuccess = true,
                    ResponseBody = data.ToString()  

    };
            }
            catch
            {
                return new Response()
                {
                    RequestId = e.RequestId,
                    ResponseUrl = e.Response.Url,
                    ResponseStatus = e.Response.Status,
                    ResponseBodySuccess = false,
                    ResponseBody = null
                };
            }
        }

        private static void Web()
        {
            // Переходим на instagram.com
            MessageBox.Show("1");
            Driver.Navigate().GoToUrl("https://www.instagram.com");
            MessageBox.Show("1");
        }

То есть, если отследить запрос через инструмент разработчика введите сюда описание изображения

request headers может содержать более [13] строк(keys, value). во всех запросах, которое мне удается получить и прочесть request headers всегда не более[13] объектов То что мне удается получить Таким образом я делал хранилище для headers:

public static ConcurrentBag<Task<Request>> CollectionXHR = null;
public class Request
    {
        public object headers { get; set; }
        public Dictionary<string, string> Headers1 = new Dictionary<string, string>();//так же это еще один из вариантов хранение полученных данных
    }

таким способ я добавляю это в хранилище

Task.WaitAll(CollectionXHR.ToArray());

Но мне удается получать только массив из [13].

Возможно это поможет вам понять или узнать что то большее

        // Подготавливаем хранилище данных
        CollectionXHR = new ConcurrentBag<Task<Request>>();         
        // Включаем запись получаемых данных
        Domains.Network.RequestWillBeSent += ResponseReceived;
        regresh();// Какие-то действия на сайте
        Task.WaitAll(CollectionXHR.ToArray());

private static void ResponseReceived(object sender, DevToolsVer.Network.RequestWillBeSentEventArgs e)
    {
        
        if (e.Type == DevToolsVer.Network.ResourceType.XHR)
        {
            CollectionXHR.Add(GetResponseBodyAsync(e));                
        }
    }


private static async Task<Request> GetResponseBodyAsync(DevToolsVer.Network.RequestWillBeSentEventArgs e)
    {
        try
        {
            var cmd = new DevToolsVer.Network.GetRequestPostDataCommandSettings();
            cmd.RequestId = e.RequestId;
            var data = await Domains.Network.GetRequestPostData(cmd);
            return new Request()
            {
                Headers1 = e.Request.Headers,

            };
        }
        catch
        {
            return new Request()
            {
                Headers1 = e.Request.Headers,

            };
        }
    }

В чем может быть дело?


Ответы (0 шт):