#c# #.net #selenium-chromedriver
#c# #.net #selenium-chromedriver
Вопрос:
Я использую Selenium ChromeDriver для перехода к страницам, и он работает нормально, но при втором запросе меня перехватывает Incapsula.
Однако, если я каждый раз удаляю драйвер, он работает.
Вот текущий код:
var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments(new List<string>() { "headless" });
var chromeDriverService = ChromeDriverService.CreateDefaultService();
ChromeDriver driver = new ChromeDriver(chromeDriverService, chromeOptions);
Приведенный ниже код находится в цикле, который перебирает множество записей
//extract json variable from page output
ResultModel resultModel = new ResultModel();
driver = new ChromeDriver(chromeDriverService, chromeOptions);
driver.Navigate().GoToUrl($"https://www.website.ca{resultUrl}");
var modelString = driver.ExecuteScript("return JSON.stringify(window.the_variable);", new object[] { });
if (modelString != null)
resultModel = JsonConvert.DeserializeObject<ResultModel>(modelString.ToString());
driver.Dispose();
Итак, это работает, но удаление и повторное создание драйвера каждый раз немного замедляет процесс.
Когда я пытаюсь просто Navigate
перейти на следующую страницу, после первого запроса меня перехватывают.
Что именно происходит, когда я удаляю и воссоздаю? Могу ли я подделать это, фактически не делая этого?
Ответ №1:
Похоже, очистка файлов cookie помогла:
driver.ExecuteChromeCommand("Network.clearBrowserCookies", new Dictionary<string, object>() );