Selenium - как отключить прокси во всплывающем окне - PullRequest
0 голосов
/ 10 июня 2018

Я использую бесплатные прокси с 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.

...