откройте несколько chromedriver (C#)

#c# #selenium-webdriver #selenium-chromedriver #parallel.foreach #parallel.for

Вопрос:

Мне нужна помощь/совет в следующей ситуации: мне нужно открыть 1000 URL-адресов одновременно в разных экземплярах драйвера Chrome. Все URL-адреса принадлежат одному домену, и для этого необходимо войти в систему. Каково решение для достижения этой цели?

Я сделал:

 Listlt;Tuplelt;string, intgt;gt; _separar = _listacomindex.ToList();  Listlt;Listlt;Tuplelt;string, intgt;gt;gt; _100 = new Listlt;Listlt;Tuplelt;string, intgt;gt;gt;();  _100 = ChunkBy(_separar, 1000);   Parallel.For(0, 1000, index =gt;  {  Directory.CreateDirectory(@"C:JPDATABASEInicio"   index.ToString());  DirectoryCopy(@"C:JPDATABASEInicioStart", @"C:JPDATABASEInicio"   index.ToString(), true);  });   ConcurrentBaglt;ConcurrentBaglt;HtmlDocumentgt;gt; fichaprod = new ConcurrentBaglt;ConcurrentBaglt;HtmlDocumentgt;gt;();   for (int i = 0; i lt; _linksdivididos.Count(); i  )  {  fichaprod.Add(_vaibuscardocumento(_100[i]));  }  

копия каталога предназначена для сохранения сеанса chrome открытым(вход в систему).

 private static ConcurrentBaglt;HtmlDocumentgt; _vaibuscardocumento(Listlt;Tuplelt;string,intgt;gt; lista)  {  //RECEBE UMA LISTA  ConcurrentBaglt;HtmlDocumentgt; _prod = new ConcurrentBaglt;HtmlDocumentgt;();  Parallel.ForEach(lista, _url =gt;  {  _prod.Add(_trataurl(_url));  });   return _prod;   }    private static HtmlDocument _trataurl(Tuplelt;string,intgt; link)  {  try  {  HtmlDocument docTEST = new HtmlDocument();  ChromeDriver _newchrome;  Debug.WriteLine(link.Item1);  //ConcurrentBaglt;Listlt;stringgt;gt; _link = new ConcurrentBaglt;Listlt;stringgt;gt;();   ChromeOptions options = new ChromeOptions();  options.AddArgument("--headless");  options.AddArgument("no-sandbox");  options.Proxy = null;  options.AddArgument("--dns-prefetch-disable");  options.AddArgument(string.Format("user-data-dir={0}", @"C:JPDATABASEInicio"   link.Item2.ToString()));  _newchrome = new ChromeDriver(options);  _newchrome.Navigate().GoToUrl(link.Item1);  Thread.Sleep(500);  //HtmlDocument docTEST = new HtmlDocument();  docTEST.LoadHtml(_newchrome.PageSource);  _newchrome.Close();  _newchrome.Quit();    Thread.Sleep(500);  return docTEST;  }  catch (Exception Ex)  {  // Ex.ToString();  //MessageBox.Show(link.Item1);  return null;  //continue;  //throw;  }  }