Как сохранить данные для входа в систему для распознавания Python Selenium Webdriver - PullRequest
0 голосов
/ 28 января 2020

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

driver.find_element_by_xpath('//input[@type="text"]').send_keys("develop@*********.com")
driver.find_element_by_xpath('//input[@type="password"]').send_keys("*********")

1 Ответ

0 голосов
/ 29 января 2020

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


Демонстрация

Чтобы продемонстрировать использование файлов cookie с использованием Selenium , мы сохранили файлы cookie с использованием после того, как пользователь вошел в веб-сайт http://demo.guru99.com/test/cookie/selenium_aut.php. На следующем шаге мы открыли тот же веб-сайт, добавив файлы cookie, и смогли войти в систему как зарегистрированный пользователь.

  • Кодовый блок для хранения файлов cookie:

    from selenium import webdriver
    import pickle
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    driver = webdriver.Chrome(options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver.get('http://demo.guru99.com/test/cookie/selenium_aut.php')
    driver.find_element_by_name("username").send_keys("abc123")
    driver.find_element_by_name("password").send_keys("123xyz")
    driver.find_element_by_name("submit").click()
    pickle.dump( driver.get_cookies() , open("cookies.pkl","wb"))
    
  • Блок кода для использования сохраненных файлов cookie для автоматической c аутентификации:

    from selenium import webdriver
    import pickle
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    driver = webdriver.Chrome(options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver.get('http://demo.guru99.com/test/cookie/selenium_aut.php')
    cookies = pickle.load(open("cookies.pkl", "rb"))
    for cookie in cookies:
        driver.add_cookie(cookie)
    driver.get('http://demo.guru99.com/test/cookie/selenium_cookie.php')
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...