Как запустить Chrome без головы с флагом user-data-dir с ChromeDriver версии 83.0.4103.39 и Selenium

Код

ChromeOptions options = new ChromeOptions();

options.AddArguments("--headless");
options.AddArguments("--disable-gpu");
options.AddArguments("--disable-software-rasterizer");
options.AddArguments("--user-data-dir=/profiles/" + profile);
options.AddArguments("--disable-software-rasterizer");
options.AddArguments("--window-size=1920x1080");
options.AddArguments("--disable-extensions");
options.AddArguments("--disable-plugins-discovery");

IWebDriver webDriver = new ChromeDriver(options);
WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(15));
webDriver.Navigate().GoToUrl(@"someUrl"); ---> Here code stucks

Ошибка:

OpenQA.Selenium.WebDriverException: "HTTP-запрос к удаленному серверу WebDriver для URL-адреса http://localhost:64225/ сеанс истек через 60 секунд".

Я тоже пробовал

options.AddArguments("--disable-dev-shm-usage");
options.AddArguments("--no-sandbox");

Консольный вывод

"A cookie associated with a cross-site resource at 
<SomeSite> was set without the `SameSite` attribute. 
A future release of Chrome will only deliver cookies 
with cross-site requests if they are set with 
`SameSite=None` and `Secure`. You can review cookies 
in developer tools under Application>Storage>Cookies 
and see more details at 
https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.", 
source: <someURL> (0)

1 ответ

Решение

Это сообщение об ошибке...

OpenQA.Selenium.WebDriverException: 'The HTTP request to the remote WebDriver server for URL http://localhost:64225/session timed out after 60 seconds.

... означает, что ChromeDriver не смог инициировать / создать новый контекст просмотра, то есть сеанс браузера Chrome с использованием желаемого профиля Chrome.

Согласно обсуждению в разделе Как открыть профиль Chrome с помощью аргумента --user-data-dir Selenium вместо указания только имени каталога черезuser-data-dir, Вам нужно пройти полный путь изuser-data-dir.


Решение

Итак, вам нужно заменить строку кода:

options.add_argument("user-data-dir=bot_data")

С:

options.add_argument("user-data-dir=C:\\Users\\AtechM_03\\AppData\\Local\\Google\\Chrome\\User Data\\bot_data")

Ссылка

Вы можете найти пару соответствующих обсуждений в:


Outro

Пара соответствующих документов:

Другие вопросы по тегам