Добрый день всем! У меня проблема с использованием 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, браузер запускается и переходит на нужную страницу, без визуализации этот процесс не работает
Здравствуйте, Махсум Акбас! Я использую 109.0.5414.7400, но пробую последнюю версию 110.0.5481.7700, но безрезультатно
Приложение перестает работать на строке driver.Navigate().GoToUrl(url), после чего возникает ошибка - OpenQA.Selenium.WebDriverException: "Запрос HTTP к удаленному серверу WebDriver для URL localhost:51728/session timed гаснет через 60 секунд».
Я думаю, ты скучаешь по спору profile-directory. Попробуйте с options.AddArgument(@"user-data-dir=G:\Data\ProfilesData") и options.AddArgument("profile-directory=Profile1")
Спасибо за комментарий, попробовал этот вариант, указал папку с профилями и имя конкретного профиля, на локальном хостинге все работает, на серверной машине не работает.
Обнаружил проблему в использовании профиля, при комментировании строки с подключением профиля все работает, на одном из сайтов нашел комментарий, в котором говорится о баге Хрома, он не может работать с профилем в безголовом режиме. Но на моей локальной машине все работает нормально, на серверной машине не работает. Нужно поискать какие-то настройки серверной машины.
Я нашел решение этой проблемы в блоге на официальном сайте. Теперь вам нужно использовать вариант --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);
Какую версию Selenium вы используете? и какая версия хрома?