Как добавить расширение в режиме инкогнито при запуске из веб-драйвера selenium chrome с python - PullRequest
0 голосов
/ 01 июня 2019

Мы проводим некоторое тестирование с использованием веб-драйвера Selen Python, где нам нужно открыть один URL-адрес в режиме инкогнито и включить одно уже установленное расширение, а затем выполнить некоторые действия.

Мои выводы:

  • загрузка расширения в режиме инкогнито не работает
  • расширение загружается при выключенном режиме icgnito

Проверено так много сообщений о переполнении стека, ничего не работает.попробовал приведенный ниже код "

path = os.path.dirname(r"C:\Users\ab\AppData\Local\Google\Chrome\User Data\Default\Extensions\jfpmbokkdeapjommajdfmmheiiakdlgo\0.1.7_0\manifest.json")
options = webdriver.ChromeOptions()
options.add_argument('--incognito')
options.add_argument("--load-extension={path}")
driver = webdriver.Chrome(chrome_options=options, executable_path='C:\chromedriver_win32\chromedriver.exe')
driver.maximize_window()
driver.get(xxxxxxxx)

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

любые предложения, пожалуйста, как загрузить расширениепри открытии драйвера Chrome в режиме инкогнито?

1 Ответ

1 голос
/ 01 июня 2019

Вместо того, чтобы загружать требуемые файлы cookie / расширение как часть ваших параметров Chrome, другой вариант использует профиль Chrome.Проверьте мой ответ в этом посте

Чтобы узнать больше о профилях и их работе, обратитесь к здесь

Вот логика включения расширенияв режиме инкогнито.

Python:

# driver.get("chrome://extensions/?id=extion_name_goes_here"); # <=== general snippet see below example
# driver.get("chrome://extensions/?id=jfpmbokkdeapjommajdfmmheiiakdlgo") 

# select allow in incognito mode checkbox
driver.execute_script("return document.querySelector('extensions-manager').shadowRoot.querySelector('#viewManager > extensions-detail-view.active').shadowRoot.querySelector('div#container.page-container > div.page-content > div#options-section extensions-toggle-row#allow-incognito').shadowRoot.querySelector('label#label input').click()");

См. мой ответ в этом посте для получения дополнительной информации о js, используемых выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...