Selenium Basic Auth Python

Автор: Igor Kirsanov

Для входа на сайт защищенный Basic Auth c помощью Selenium достоточно передать логин и пароль внутри ссылки.

Синтаксис: http://username:password@the-site.com

Пример кода на python, драйвер для google chrome

from selenium import webdriver

DRIVER = "nix/chromedriver.2.28"
driver = webdriver.Chrome(DRIVER)

# http://user:pass@host.tld
driver.get("http://admin:admin@the-internet.herokuapp.com/basic_auth")

Методы передачи заголовка и отправки паролей доступные в java, в драйвере python пока не поддерживаются

В новых версиях браузеров установлена защита от паролей в ссылке, необходимо отключить защиту через параметры браузера. Для google chrome это - "--disable-blink-features=BlockCredentialedSubresources"

Альтернативные решения

  • создание расширения браузера
  • использование инструментов автоматизации и управления клавиатурой и мышью
  • загрузка сохраненных профилей, с пройденной авторизацией
  • проксирование через сайты с поддержкой дополнительных заголовков

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