ChromeDriver обнаруживается после первого запроса

#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>() );