Как убрать браузером Chrome управляет автоматизированное тестовое ПО?
Как сделать так чтобы браузером не управляло тестовое ПО. Скорее всего нужно как-то скрыть работу вебдрайвера, но как это сделать?Я перепробовал очень много вариантов, но к правильному так и не пришёл. Помог, скрипт который делает вебдрайвер незаметным, но он работает нестабильно(при переходе на другой сайт, он понимает что запросы поступают через вебдрайвер. Вот сам скрипт:
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", < "source": """ const newProto = navigator.__proto__ delete newProto.webdriver navigator.__proto__ = newProto """ >)

- Вопрос задан более двух лет назад
- 6129 просмотров
Статья Методы обхода защиты от автоматизированного ПО в браузере Chrome под управлением Selenium в Python
При парсинге данных возникают ситуации, когда нужно получить доступ к сайту с помощью драйвера selenium. Так как на странице сайта в коде выполняются скрипты, которые добавляют в код данные, доступ к которым с помощью обычных запросов получить просто не получиться. Но, все может быть немного печальнее. К примеру, страница может находиться за CDN, такой как Cloudflare, с включенной проверкой браузера. В этом случае обычный драйвер selenium доступ к странице не получит, так как будет определено, что используется автоматизированное тестовое ПО. Но, даже в этих случаях выход есть. Давайте посмотрим, как можно обойти данную проверку с помощью отключения определенных опций в браузере, а также рассмотрим уже модифицированную версию драйвера для Chrome, в которой уже из коробки отключены данные опции. Но, обо всем по порядку.
Для начала, чтобы убедиться, что доступа к сайту у браузера под управлением Chrome все же нет, создадим простой код, который будет загружать драйвер и переходить на защищенную страницу.
Что потребуется?
Для данного кода потребуется установить selenium. Для этого пишем в терминале команду:
pip install selenium
Загрузка сайта с включенными опциями автоматизации
После того, как будет установлена нужная библиотека, импортируем в скрипт нужные модули. А понадобится нам модуль os, для получения пути к драйверу; time, для того, чтобы установить небольшую паузу перед закрытием; platform, для определения операционной системы, чтобы в зависимости от этого подгружать нужный драйвер.
Из библиотеки selenium импортируем webdriver, а также из selenium.webdriver.chrome.service — Service, для передачи драйверу нужных параметров. В частности, в данном коде передается путь к вебдрайверу, а также параметр log_path, в котором можно указать путь для сохранения логов. В данном случае логи сохраняются в null.
import os import time from platform import system from selenium import webdriver from selenium.webdriver.chrome.service import Service exec_path = os.path.join(os.getcwd(), 'driver', 'chromedriver.exe') if system() == "Windows" else \ os.path.join(os.getcwd(), 'driver', 'chromedriver') driver = webdriver.Chrome(service=Service(log_path=os.devnull, executable_path=exec_path))
Ну и перейдем на нужную страницу, подождем 10 секунд и закроем браузер.
driver.get('https://nowsecure.nl') time.sleep(10) driver.close() driver.quit()
Страница, на которую переходит браузер, как раз находится под защитой Cloudflare. Доступ получить к сайту не получилось. Нам было предложено подтвердить, что мы люди. То есть, браузер проверку не прошел и было определено автоматизированное ПО.
Как скрыть, что ты зашел через selenium?
@ЛёняДекарт можно адрес сайта, который детектит селениум? ps не помогли excludeSwitches и useAutomationExtension?
13 янв 2021 в 20:00
@Jack_oS Мне помогло это : chrome_options.add_argument(«—disable-blink-features=AutomationControlled»)
14 янв 2021 в 4:56
from fake_useragent import UserAgent from selenium import webdriver # Вебморда from time import sleep # Для таймаута from selenium.webdriver.chrome.options import Options # Опции селениума while True: ua = UserAgent() opts = Options() us_ag = ua.random # Меняет регулярно юзер-агенты при запросе url = 'https://2ip.ru' # Сайт для проверки измененного юзерагента print(us_ag) opts.add_argument(f"user-agent=") # Десктопный useragent driver = webdriver.Chrome(chrome_options=opts) # Иногда нужно явно указать адрес # web драйвера executable_path=r"F:\GIT\siteparser\seleniumparse\chromedriver.exe" driver.get(url) # Открываем в браузере что бы убедиться в применении юзер-агента sleep(10) driver.close()
Отслеживать
ответ дан 13 янв 2021 в 17:45
165 7 7 бронзовых знаков
Проверить видит ли сайт использование webdriver можно здесь
Отключить в хроме можно так:
options.add_argument("--disable-blink-features=AutomationControlled")
Посмотреть видеогайд по отключению можно тут
браузером хром управляет автоматизированное ПО
![]()
![]()

Нужно бооольше золота информации. Т.е. вы вручную запускаете браузер, а видите сообщение о том, что браузером управляет автоматизированное ПО?
#3
ivanivanovich
ivanivanovich
Отправлено 26 октября 2017 — 11:29
#4
ivanivanovich
ivanivanovich
Отправлено 26 октября 2017 — 12:31
Нужно бооольше золота информации. Т.е. вы вручную запускаете браузер, а видите сообщение о том, что браузером управляет автоматизированное ПО?
Извините, немного не так.
1. Делаю стандартные настройки в eclipse. Добавляю нужные библиотека selenium и selenide.
2. File file = new File(«D:/driver/chromedriver.exe»);
System.setProperty(«webdriver.chrome.driver», file.getAbsolutePath());
WebDriver driver = new ChromeDriver();
Браузер открывается, но появляется сообщение : браузером хром управляет автоматизированное ПО.
3.Если использовать InternetExplorerDriver , то появляется This is the initial start page for the WebDriver server.
#5
Little_CJIOH
Little_CJIOH
![]()
Отправлено 26 октября 2017 — 14:25
Снесите эклипс и хромдрайвер и проблема с автоматизированным ПО захватывающим ваш браузер будет решена
а оpen в последней строчке — это вы кому сказали? Даже удивительно что это собралось и запустилось.
#6
cpmBugHunter
cpmBugHunter
![]()
![]()
Отправлено 27 октября 2017 — 07:57
Снесите эклипс и хромдрайвер и проблема с автоматизированным ПО захватывающим ваш браузер будет решена
а оpen в последней строчке — это вы кому сказали? Даже удивительно что это собралось и запустилось.
Видимо, open — команда из библиотеки selenide
#7
Little_CJIOH
Little_CJIOH
![]()
Отправлено 27 октября 2017 — 09:23
Я не специалист ни в селениуме ни в селениде, но я не вижу в коде связки между открытым селениумом драйвером и командой open из библиотеки selenide. Если она осталась за кадром, то «штатные телепаты в отпуске»
#8
selen
Отправлено 27 октября 2017 — 09:36
Требуется отключить это уведомление?? А зачем? (это возможно?)
ВД «заставляет» браузер что-то там выполнить, ему это не нравится, что им пытаются управлять, он то и выкидывает этот «алерт». Но на работу то ни как не влияет.
А то что у Вас тест не «проигрывается» так это с кодом беда..
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных
Ответить цитируемым сообщениям Очистить
- Форум тестировщиков
- → Тестирование
- → Тест-дизайн и ручное тестирование
- Политика Конфиденциальности
- Правила форума ·


- Помощь