При тестировании веб-автоматизации часто возникает ситуация с входом в систему, и вам необходимо входить в систему каждый раз, когда вы открываете страницу, что очень затруднительно. Мы используем файл cookie драматурга для реализации автоматического входа в систему.
① Войдите на сайт и введите свою учетную запись и пароль, как обычно.
② Сохранение информации о файлах cookie.
③ Используйте предыдущую информацию cookie, чтобы снова войти на сайт.
В качестве примера возьмем Авторизоваться тестовую платформу.,Веб-сайт: http://demo.liumatest.cn/#/home/dashboard.
Код входа следующий:
with sync_playwright() as playwright: # Начало опущено
browser = playwright.chromium.launch(headless=False, slow_mo=5000) # Установите время ожидания для каждого шага на 3 секунды.
context = browser.new_context()
page = context.new_page() # открыть страницу
page.goto('http://demo.liumatest.cn/#/home/dashboard') # Открыть адрес
# Введите пароль к аккаунту Авторизоваться
page.fill('#username','demo') # Введите номер счета
page.fill('#password','123456') # Введите пароль
page.click('#login') # Нажмите Авторизоваться
page.wait_for_timeout(2000)
browser.close() # Опущено, чтобы закрыть объект драматурга
Запустите его, и вы увидите, что мы успешно вошли в систему. Теперь мы хотим сохранить информацию о файле cookie для входа. Мы используем следующее:
context.storage_state(path="cookie.json")
Что это значит? Послушайте, я объясню вам это медленно:
Storage_state буквально переводится как состояние хранения. Как и дословный перевод, этот метод возвращает состояние хранения текущего контекста браузера, который будет включать текущий файл cookie. Если мы предоставим параметр пути, он будет сохранен в указанном файле. и возврат представляет собой словарь.
Итак, выше мы использовали путь для хранения файла cookie в файле cookie.json.
Давайте рассмотрим приведенный выше пример и добавим его в код после успешного входа в систему.
page.click('#login') # Нажмите Авторизоватьсяcontext.storage_state(path="cookie.json") # savestorage_state в файл JSON
Запустите его еще раз и убедитесь, что наш файл cookie.json сохранен под текущим адресом проекта.
На этом этапе мы завершили второй шаг
Далее давайте войдем на веб-сайт напрямую, чтобы проверить, успешно ли мы вошли в систему.
with sync_playwright() as playwright: # Начало опущено
browser = playwright.chromium.launch(headless=False, slow_mo=5000) # Установите время ожидания для каждого шага на 3 секунды.
context = browser.new_context(storage_state="cookie.json")
page = context.new_page() # открыть страницу
page.goto('http://demo.liumatest.cn/#/home/dashboard') # Открыть адрес
page.screenshot(path="image.png")
browser.close() # Опущено, чтобы закрыть объект драматурга
Как проверить, успешен ли вход?
Выберите метод скриншота, то есть сделайте снимок экрана всей страницы и сохраните его в текущем файле image.png. Давайте посмотрим скриншот входа на сайт.
На данный момент мы выполнили требования,
Тогда давайте найдем сайт и попробуем.