Проблема со входом в Google Аккаунт
У меня возникла проблема со входом в google-аккаунт через selenium. Браузер как-то узнает, что я использую selenium, хотя я перерыл множество различных сайтов, чтобы обойти это: использовал selenium-stealth, fake-useragent, изменял настройки браузера в selenium, но ничего из этого не помогло.
Возможно, я просто что-то не так делал. Вот код, который у меня получился:
user_agent = UserAgent()
opts = ChromeOptions()
# opts.add_argument("--headless")
opts.add_argument("--disable-blink-features")
opts.add_argument('--disable-popup-blocking')
opts.add_argument('--disable-extensions')
opts.add_argument('--no-sandbox')
opts.add_argument('--disable-dev-shm-usage')
opts.add_argument(f'user-agent={user_agent.random}')
opts.add_argument("--disable-blink-features=AutomationControlled")
opts.add_experimental_option("excludeSwitches", ["enable-automation"])
opts.add_experimental_option('useAutomationExtension', False)
opts.add_argument("start-maximized")
service = Service(executable_path=ChromeDriverManager().install())
browser = Chrome(options=opts, service=service)
browser.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
stealth(browser,
languages=["en-US", "en"],
vendor="Google Inc.",
platform="Win32",
webgl_vendor="Intel Inc.",
renderer="Intel Iris OpenGL Engine",
fix_hairline=True,
)
browser.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": user_agent.random})
browser.get('https://drive.google.com/drive/u/0/my-drive')
class_name, timesleep = 'JnOM6e.TrZEUc.rDisVe', 5
# WebDriverWait(browser, timeout=timesleep).until(EC._element_if_visible((By.CSS_SELECTOR, 'input[type=email]')))
input_type_email = browser.find_element(By.CSS_SELECTOR, 'input[type=email]')
ActionChains(browser)\
.move_to_element(input_type_email)\
.pause(0.5)\
.click_and_hold()\
.pause(0.7)\
.send_keys(email)\
.pause(1.25)\
.perform()
WebDriverWait(browser, timeout=timesleep).until(EC.element_to_be_clickable((By.CLASS_NAME, class_name)))
click_on_button_next = browser.find_element(By.CLASS_NAME, class_name)
ActionChains(browser)\
.pause(0.5)\
.move_to_element(click_on_button_next)\
.click()\
.perform()
WebDriverWait(browser, timeout=timesleep).until(EC.element_located_to_be_selected((By.CSS_SELECTOR, 'input[type=password]')))
try:
browser.find_element(By.CSS_SELECTOR, 'input[type=password]').send_keys(password)
except ElementNotInteractableException:
print('Error')
time.sleep(100)
Да, код получился большой, но я не знал, что еще предпринять, чтобы обойти эту ошибку. Вот, что выводит сайт при обнаружении selenium:

Сайты, которые я использовал, чтобы узнать как обойти ошибку:
https://qna.habr.com/q/996187
https://pypi.org/project/selenium-stealth/
https://www.cyberforum.ru/python-web/thread2778506.html
и какие-то ещё другие...