Python: Как загрузить файлы cookie из .txt в селен, чтобы получить веб-драйвер для входа на защищенный сайт - PullRequest
1 голос
/ 07 мая 2020

У меня есть два вопроса, похожих на мой, однако ни один из них не помог мне преодолеть эту текущую преграду в моем приложении.

Основная проблема: я автоматизирую процесс входа на несколько безопасных веб-сайтов и загрузки файлы с помощью Selenium. Однако, поскольку selenium использует новый браузер при каждом запуске, сайт не распознает меня и отклоняет ввод данных для входа, отправляя электронное письмо с подтверждением безопасности.

1) Связанные файлы cookie сайта находятся в текстовом файле, который я создал вручную, экспортировав необходимые файлы cookie сайта из моего обычного браузера Chrome. ПРИМЕЧАНИЕ: я не уверен, правильно ли он отформатирован, потому что я просто взял повар ie из Chrome и вставил его в текстовый файл, и все.

2) Как правильно импортировать и выполнить те файлы cookie при выполнении функции driver.get (link)?

Пожалуйста, помогите, большое спасибо!

Пример основной функции:

from Users/las/Desktop/Python/AF Project/Admin import Load_Cookies
driver = webdriver.Chrome ("/Users/las/Desktop/Python/Selenium/chromedriver")
Load_Cookies(driver, 'filePath')

link1="https://www.website.com/login"
link2="https://www.website.com/secured/commissions-overview"

driver.get(link1)
driver.find_element_by_id("NdbxLoginForm_username").send_keys("username")
driver.find_element_by_id("NdbxLoginForm_password").send_keys("password")
driver.find_element_by_name("loginButton").click()
driver.find_element_by_xpath("//*[@id='resultsFound']/div/table/tbody/tr/td[1]/a").click

driver.get(link2)
s1 = driver.find_element_by_partial_link_text("Select account to view") 
s1.select_by_value('715116142')
driver.find_element_by_class_name("btn btn-primary btn-block-xs col-sm-3").click
driver.find_element_by_id("scicommlink").click

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Сначала вам нужно перейти на страницу, чтобы установить домен, затем добавить каждого повара ie, повторяя повар ie jar:

driver.get("https://www.cartetitolari.mps.it/portaleTitolari/titolari.html")

for c in session.cookies :
    driver.add_cookie({'name': c.name, 'value': c.value, 'path': c.path, 'expiry': c.expires})
0 голосов
/ 07 мая 2020

Вы можете использовать pickle для загрузки / записи файлов cookie в файл. Это работает для меня, если это не для вас, вернитесь ко мне:

Запустите этот код один раз, чтобы выгрузить файлы cookie в файл:

from selenium import webdriver
import pickle

driver.get("test.com")

with open("cookies.pickle", "wb") as file:
    pickle.dump(driver.get_cookies(), file)

затем сделайте это, чтобы загрузить файлы cookie:

...
with open("cookies.pickle", "rb") as file:
    cookies = pickle.load(file)

for cookie in cookies:
    driver.add_cookie(cookie)

Надеюсь, это сработает :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...