Используя Selenium в Python, есть ли способ сделать веб-драйвер / браузер «распознаваемым устройством» при входе в онлайн-аккаунт? - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь создать программу Python с Selenium, которая откроет браузер, войдет в мою учетную запись кредитного союза и скопирует транзакции в электронную таблицу, чтобы я мог дальше ими манипулировать.

Когда я войти в мою учетную запись с нового устройства, для этого требуется дальнейшая идентификация, отправив код на мой телефон или электронную почту.

Безопасный вход 1 Безопасный вход 2

Я могу запустить свой сценарий и вручную позаботиться о дополнительной проверке, но даже если я решу зарегистрировать браузер как доверенное устройство, он всегда запрашивает дополнительную проверку каждый раз, когда я запускаю сценарий.

Я подумал, что могу отправить код на мою электронную почту, а затем получить письмо и затем ввести код, но это кажется более сложным, чем необходимо.

Есть ли способ успешно зарегистрировать браузер, который запускается Selenium?

Возможно, в браузере есть какой-то идентификатор, который веб-сайт будет использовать для регистрации устройства, а Selenium каждый раз использует новый?

Любая помощь приветствуется.

Вот мой код, я знаю, что он довольно базовый c прямо сейчас: (написано на Python 3.8)

from selenium import webdriver
import time

#Open Chrome Browser
browser = webdriver.Chrome(r'path to my driver...\chromedriver.exe')

#Navigate to CU
browser.get("CU's Website")

#Let website load, not sure if this is necessary or not
time.sleep(3)

#Get Paths for Input Fields (Is there a way to hardocde these paths? Does it matter?)
field_user = browser.find_element_by_css_selector("#userid")
field_password = browser.find_element_by_css_selector("#password")
field_enter = browser.find_element_by_css_selector("#LoginForm > input[type=image]:nth-child(8)")


#Enter Username
field_user.send_keys('My username')

#Enter Password (What is a good/secure way to store password here?
field_password.send_keys('My password')

#Submit Credentials
field_enter.click()
...