Есть ли какая-то причина, чтобы получить веб-сеанс, который управляется одноразовым паролем только для браузера - PullRequest
0 голосов
/ 24 декабря 2018

Я устанавливаю сеанс с Chrome, в котором необходимо войти на сайт с именем пользователя, паролем и OTP (одноразовый пароль), который отправляется на телефон.OTP предназначен только для браузера, что означает, что если я введу имя пользователя, пароль и OTP один раз в chrome, то в следующий раз будет запрашивать имя пользователя и пароль только для OTP.Я использую Селен-Python для автоматизации этого и Селен всегда открывать новое окно браузера.Как я могу преодолеть эту ситуацию?

Я пытался сохранить куки и затем загрузить их на драйвер, но все еще запрашивать OTP.

# Saved functions are below.

import pickle

# Path = "E:\\Python\\cookies\\cookies.pkl".
def save_cookie(driver, path):
    """
    Save cookies in cookies folder.
    """
    with open(path, 'wb') as filehandler:
        pickle.dump(driver.get_cookies(), filehandler)

def load_cookie(driver,path):
    """
    Load cookies from the saved folder.
    """
    with open(path, 'rb') as cookiesfile:
        cookies = pickle.load(cookiesfile)
        for cookie in cookies:
            driver.add_cookie(cookie)

# Here is what I'm trying.

from selenium import webdriver
from udf import cookies
import pickle

driver = webdriver.Chrome()
driver.get('https://somewebsite.com/')
cookies.save_cookie(driver,'E:\\Python\\cookies\\cookies.pkl')

cookies.load_cookie(driver, 'E:\\Python\\cookies\\cookies.pkl')

driver.refresh()

Мне все еще нужно отправить OTP длябраузер Chrome.

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

код ниже работал для меня.
Описание: я создал новый профиль в Chrome, выполнив следующие шаги chrome: // settings / > Добавить и управлять людьми> Добавить человека.Затем войдите в мою учетную запись YouTube в новом профиле.Затем следующий код дает мне автоматически авторизованную страницу YouTube.Путь к профилю можно найти в chrome: // version / в ключе профиля: ключ.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = webdriver.ChromeOptions() 
options.add_argument("user-data-dir=C:\\Users\\randh\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 2") #Path to your chrome profile which you have created.
driver = webdriver.Chrome(chrome_options=options) #Place webdrivers in Scripts folder of Python(Where Python is installed), so that it can be picked automatically.
driver.get('https://youtube.com')

Лайк или комментарий ...

0 голосов
/ 24 декабря 2018

Открыть браузер Chrome вручную.Перейдите к chrome: // version /

Запишите Путь к профилю, его профиль в настоящее время вы используете.

В том же браузере перейдите к своему приложению, выполните вход со всеми необходимыми вещами.

, затем вызовите этот профиль в скрипте.

Посмотрите, как позвонить в python Как загрузить профиль по умолчанию в Chrome с помощью Python Selenium Webdriver?

Вам необходимоукажите Путь к профилю здесь по ссылке выше

options.add_argument("user-data-dir=C:\\Path") #Path to your chrome profile
...