Перейти к содержимому

Браузером chrome управляет автоматизированное тестовое по как убрать

  • автор:

Как убрать браузером Chrome управляет автоматизированное тестовое ПО?

Как сделать так чтобы браузером не управляло тестовое ПО. Скорее всего нужно как-то скрыть работу вебдрайвера, но как это сделать?Я перепробовал очень много вариантов, но к правильному так и не пришёл. Помог, скрипт который делает вебдрайвер незаметным, но он работает нестабильно(при переходе на другой сайт, он понимает что запросы поступают через вебдрайвер. Вот сам скрипт:

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", < "source": """ const newProto = navigator.__proto__ delete newProto.webdriver navigator.__proto__ = newProto """ >)

60abf4ac6e1a3177614229.jpeg

  • Вопрос задан более двух лет назад
  • 6129 просмотров

Статья Методы обхода защиты от автоматизированного ПО в браузере Chrome под управлением Selenium в Python

При парсинге данных возникают ситуации, когда нужно получить доступ к сайту с помощью драйвера selenium. Так как на странице сайта в коде выполняются скрипты, которые добавляют в код данные, доступ к которым с помощью обычных запросов получить просто не получиться. Но, все может быть немного печальнее. К примеру, страница может находиться за CDN, такой как Cloudflare, с включенной проверкой браузера. В этом случае обычный драйвер selenium доступ к странице не получит, так как будет определено, что используется автоматизированное тестовое ПО. Но, даже в этих случаях выход есть. Давайте посмотрим, как можно обойти данную проверку с помощью отключения определенных опций в браузере, а также рассмотрим уже модифицированную версию драйвера для Chrome, в которой уже из коробки отключены данные опции. Но, обо всем по порядку.

prew.jpg

Для начала, чтобы убедиться, что доступа к сайту у браузера под управлением 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 анонимных

Ответить цитируемым сообщениям Очистить

  1. Форум тестировщиков
  2. → Тестирование
  3. → Тест-дизайн и ручное тестирование
  4. Политика Конфиденциальности
  5. Правила форума ·

  • RSS поток
  • Помощь

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *