Я использую бесплатные прокси с Selenium, и все работает нормально, за исключением случая, когда прокси требует аутентификации.В этом случае браузер отображает всплывающее окно входа в систему, но поскольку прокси-сервер требует проверки подлинности, стандартный способ обработки оповещений не работает.
В настоящее время мой код выглядит следующим образом:
driver = webdriver.Chrome(chromedriver_path)
try:
driver.switch_to.alert.dismiss()
raise ProxyFailed
except NoAlertPresentException:
pass
driver.get(url)
try:
driver.switch_to.alert.dismiss()
raise ProxyFailed
except NoAlertPresentException:
pass
Когда прокси-сервер требует аутентификации, я хочу только закрыть диалоговое окно, поскольку у меня нет учетных данных.
Проблема в том, что диалоговое окно, кажется, блокирует вызов driver.get
и ожидает ввода пользователя (первый блок try
выполняется, но программа никогда не достигает второго).
Я не могу просто удалить эти проблемные прокси из списка, потому что сбор прокси также автоматизирован и происходит каждый раз при запуске программы.
Поиск в Интернете, я нашел только этот switch_to.alert
метод для обработки всплывающих окон входа в систему.
В качестве альтернативы, есть ли способ отключить всплывающее окно в Chrome, так что он просто отображает страницу ошибки 401
и не ждет ввода пользователя?
Я использую Python 2.7в Linux, но программное обеспечение также должно работать в Windows.
РЕДАКТИРОВАТЬ: Это диалоговое окно, о котором я говорю: снимок экрана диалога
Текст переводится в:
Вход в систему
Прокси-серверу [адрес сервера] требуется имя пользователя и пароль.
Ваше подключение к этому сайту не является частным.
Имя пользователя [вход]
Пароль[вход]
[вход] [отмена]
Мне нужно нажать кнопку отмены с помощью Selenium.