0

Я использую Selenium + C# + chromedriver с опцией --headless.

Для входа в учетные записи я использую профили хрома, где предварительно была проделана процедура логина. Это все отлично работает, но проблема в том, что только в режиме с головой. Как только включаю headless нужно логиниться заново (Понял по скриншотам). Как я понимаю, браузер в режиме --headless не получает данные профиля. Пытался разобраться в проблеме при помощи гугла, но безуспешно, наткнулся только на аргументы принудительного отключения кэширования и создания куки.

Помогите разобраться с проблемой, буду безмерно благодарен)

  • Если вам нужно просто парсить с авторизацией, но не отображать страницу, то вам в принципе не нужен браузер. – aepot Dec 10 '20 at 00:58
  • Я не занимаюсь парсингом. В двух словах, запуская браузер, я должен быть авторизован в нужном сервисе. Авторизовавшись однажды я могу использовать обычный хромдрайвер и все работает успешно. Вопрос в том, почему прекращает работу с флагом --headless – Dmitry Derepa Dec 10 '20 at 09:11
  • Неужели по назначению Selenium используете? :) То есть для автотестов, сейчас редко такие случаи в вопросах попадаются. Зачем вам тогда headless? А если и нужен, то в чем тогда проблема авторизоваться на сайте каждый раз заново? Заодно будете уверены в том, что авторизация точно не поломалась. Как я понял, гуглы сделали это дял безопасности. Представьте, приедет к вам вирус, который запустит в фоне хром и будет под вашим аккаунтом всякое вытворять, а вы даже этого не заметите. Но это всего-лишь гипотеза. – aepot Dec 10 '20 at 09:24
  • По назначению? не дай Бог))) Использую для автоматизации. Авторизация не проблема, только если не установлена каптча) Да и вопрос скорее исследовательского характера, авторизация здесь лишь как пример. Уверен, можно найти еще 10000 задач, где понадобятся данные профиля в хедлесе. Достаточно давно использую селениум, но только сейчас столкнулся с этой проблемой. Хотелось бы узнать почему так и как это исправить. – Dmitry Derepa Dec 10 '20 at 09:53
  • Ну я выше написал, почему, и скорее всего никак. Ибо была бы дыра в безопасности. – aepot Dec 10 '20 at 09:54

1 Answers1

0

Много времени потратил на решение задачи. Конкретно ответа почему в хедлесе не подтягиваются данные профиля так и не нашел.

Обошел проблему с помощью получения куков для нужных профилей с помощью

driver.Manage().Cookies.AddCookie(new Cookie("Coockie_name", "value"));
driver.Manage().Cookies.GetCookieNamed("name");

Может кому пригодится