Selenium - Edge - Как начать сеанс веб-драйвера с рабочим профилем?

В моем приложении нет страницы входа для аутентификации. Он использует мой идентификатор электронной почты организации (SSO) для аутентификации моего доступа к приложению. Я использую версию 80.0.361.66 (официальная сборка) (64-разрядная версия) Microsoft Edge.

driver = webdriver.Edge()
driver.maximize_window()

версия селена - селен == 3.141.0

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

options = webdriver.EdgeOptions() 
options.add_argument("user-data-dir=C:\\Users\\Ajmal.Moideen\\AppData\\Local\\Microsoft\\Edge\\User Data") 
driver = webdriver.Edge(options=options) 
driver.maximize_window() 

версия селена = 4.0.0a3


person Ajmal Moideen    schedule 16.03.2020    source источник
comment
Опишите процесс аутентификации SSO. Вы используете сертификат или пароль для входа в новый браузер?   -  person pcalkins    schedule 17.03.2020
comment
Не совсем уверен, но я интерпретирую docs.microsoft.com/en-us/microsoft-edge/, что означает, что вам нужно web driver.EdgeOptions(false) для правильной инициализации версии Edge для Chromium.   -  person Matthias Winkelmann    schedule 17.03.2020
comment
Спасибо @MatthiasWinkelmann. Я тоже пробовал это сейчас. Однако пограничный драйвер не настраивается с настройкой в ​​параметрах.   -  person Ajmal Moideen    schedule 17.03.2020
comment
По сути, аутентификация SSO использует токен-носитель, переданный в заголовке авторизации. @pcalkins   -  person Ajmal Moideen    schedule 17.03.2020
comment
options = webdriver.EdgeOptions(is_legacy=False) options.add_argument("user-data-dir=C:\\Users\\Ajmal.Moideen\\AppData\\Local\\Microsoft\\Edge\\User Data") options.add_argument("--start-maximized") driver = webdriver.Edge(options=options) Я попытался добавить аргумент с максимальным запуском, чтобы проверить, принимает ли драйвер список опций. Браузер не разворачивался.   -  person Ajmal Moideen    schedule 17.03.2020
comment
токен обычно устанавливается после входа в систему. Каков метод входа на сервер аутентификации?   -  person pcalkins    schedule 17.03.2020


Ответы (1)


Вот как я заставил его работать - я использую Chromium Edge 85.0.564.51 с Selenium 3.141.0.

Selenium 3.141.0 от pip, похоже, не поддерживает новый Edge Webdriver на основе Chromium, но Microsoft предоставляет его в своем _ 1_ пакет (здесь лучше документация), как указано в комментарии Матиаса к вашему вопросу.

Сначала возьмите веб-драйвер Chromium Edge здесь - получите версию, соответствующую вашей версии Edge (перейдите к chrome:version в Edge, чтобы узнать, какая версия у вас установлена). Поместите webdriver в удобное место, вам нужно указать driverpath ниже, чтобы указывать на него.

Установите пакеты pip:

pip install msedge-selenium-tools selenium==3.141

В своем коде импортируйте модули msedge-selenium-tools Webdriver и Options и создайте веб-драйвер, как показано:

from msedge.selenium_tools import Edge, EdgeOptions

...

options = EdgeOptions()
options.use_chromium = True
options.add_argument("--user-data-dir=C:\\Users\\YOUR-USERNAME\\AppData\\Local\\Microsoft\\Edge\\User Data")
options.add_argument("--start-maximized")
driverpath = 'msedgedriver.exe'

driver = Edge(driverpath, options=options)

Вуаля, это должно помочь.

P.S .: Несмотря на то, что chrome:version покажет путь к вашему профилю с завершающим \Default, не включайте это в свой --user-data-dir аргумент выше, поскольку драйвер, кажется, добавляет \Default в конец.

person datu-puti    schedule 18.09.2020