Selenium ChromeDriver не выполняет навигацию с --headless в консольном приложении С#

Добрый день всем! У меня проблема с использованием Selenium ChromeDriver в консольном приложении, я использую такой код:

var options = new ChromeOptions();
options.AddArgument("--headless");
options.AddArgument("--no-sandbox");
options.AddArgument(@"user-data-dir=G:\Data\ProfilesData\Profile1");

var driverService = ChromeDriverService.CreateDefaultService(Directory.GetCurrentDirectory());
driverService.HideCommandPromptWindow = true;

WebDriver driver = new ChromeDriver(driverService, options);
driver.Navigate().GoToUrl(URL);

Помогите пожалуйста понять, чтобы браузер переходил на нужный URL в консольном приложении

Пробовал убрать параметр --headless, браузер запускается и переходит на нужную страницу, без визуализации этот процесс не работает

Какую версию Selenium вы используете? и какая версия хрома?

Mahsum Akbas 15.02.2023 14:28

Здравствуйте, Махсум Акбас! Я использую 109.0.5414.7400, но пробую последнюю версию 110.0.5481.7700, но безрезультатно

denis.k 15.02.2023 15:53

Приложение перестает работать на строке driver.Navigate().GoToUrl(url), после чего возникает ошибка - OpenQA.Selenium.WebDriverException: "Запрос HTTP к удаленному серверу WebDriver для URL localhost:51728/session timed гаснет через 60 секунд».

denis.k 15.02.2023 16:13

Я думаю, ты скучаешь по спору profile-directory. Попробуйте с options.AddArgument(@"user-data-dir=G:\Data\ProfilesData") и options.AddArgument("profile-directory=Profile1")

sound wave 20.02.2023 09:03

Спасибо за комментарий, попробовал этот вариант, указал папку с профилями и имя конкретного профиля, на локальном хостинге все работает, на серверной машине не работает.

denis.k 21.02.2023 10:16
Типы данных JavaScript
Типы данных JavaScript
В JavaScript существует несколько типов данных, включая примитивные типы данных и ссылочные типы данных. Вот краткое объяснение различных типов данных...
Как сделать движок для футбольного матча? (простой вариант)
Как сделать движок для футбольного матча? (простой вариант)
Футбол. Для многих людей, живущих на земле, эта игра - больше, чем просто спорт. И эти люди всегда мечтают стать футболистом или менеджером. Но, к...
Знайте свои исключения!
Знайте свои исключения!
В Java исключение - это событие, возникающее во время выполнения программы, которое нарушает нормальный ход выполнения инструкций программы. Когда...
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик Модуль flexbox, также известный как гибкий модуль разметки box, помогает эффективно проектировать и...
Введение в раздел "Заголовок" в HTML
Введение в раздел "Заголовок" в HTML
Говорят, что лучшее о человеке можно увидеть только изнутри, и это относится и к веб-страницам HTML! Причина, по которой некоторые веб-страницы не...
1
5
67
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Обнаружил проблему в использовании профиля, при комментировании строки с подключением профиля все работает, на одном из сайтов нашел комментарий, в котором говорится о баге Хрома, он не может работать с профилем в безголовом режиме. Но на моей локальной машине все работает нормально, на серверной машине не работает. Нужно поискать какие-то настройки серверной машины.

Ответ принят как подходящий

Я нашел решение этой проблемы в блоге на официальном сайте. Теперь вам нужно использовать вариант --headless=new, а не --headless. Рабочий код выглядит так:

var options = new ChromeOptions();
options.AddArgument("--headless=new");
options.AddArgument("--no-sandbox");
options.AddArgument(@"user-data-dir=G:\Data\ProfilesData\Profile1");

var driverService = ChromeDriverService.CreateDefaultService(Directory.GetCurrentDirectory());
driverService.HideCommandPromptWindow = true;

WebDriver driver = new ChromeDriver(driverService, options);
driver.Navigate().GoToUrl(URL);

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