首页 > 其他分享 >软件测试|web自动化测试神器playwright教程(十一)

软件测试|web自动化测试神器playwright教程(十一)

时间:2023-07-26 18:45:17浏览次数:33  
标签:web playwright 登录 sync cookie context page 软件测试

在这里插入图片描述

前言

在我们进行web自动化测试的过程中,我们经常会面临需要登录的情况,每一次打开页面如果都需要重新登录的话,就会大大增加测试所需要的时间,体现不出自动化测试的优势,我们都知道selenium可以通过cookie实现登录,那么playwright能不能实现这个功能呢?

答案是肯定的,playwright可以实现保存cookie实现自动化登录的功能。

获取保存cookie

我们以登录GitHub网站为例,登录代码如下:

from playwright.sync_api import Playwright, sync_playwright


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto('https://github.com/login')

    # Interact with login form
    page.get_by_label("Username or email address").fill("xxxxxxxxxxxxx")
    page.get_by_label("Password").fill("xxxxxxxxxxxxx")
    page.get_by_role("button", name="Sign in").click()
    t

with sync_playwright() as playwright:
    run(playwright)

我们可以实现GitHub网站的登录,登录之后我们需要保存我们的cookie信息,便于我们后续的登录操作,playwright提供了Context.storageState([options])方法用于保存cookie信息,代码如下:

from playwright.sync_api import Playwright, sync_playwright


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto('https://github.com/login')

    # Interact with login form
    page.get_by_label("Username or email address").fill("xxxxxxxxxxxxx")
    page.get_by_label("Password").fill("xxxxxxxxxxx")
    page.get_by_role("button", name="Sign in").click()
    
    # Continue with the test

    # # 保存storage state 到指定的文件
    # storage = context.storage_state(path="cookie.json")

    # ---------------------
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

在这里插入图片描述

我们可以看到我们的文件中生成了一个cookie.json文件,我们可以在其他地方使用这个cookie用于登录,现在我们来测试cookie是否能够使用这个cookie实现登录。

登录

我们使用cookie来登录,使用方法如下:

# Create a new context with the saved storage state.
context = browser.new_context(storage_state="state.json")

我们来登录GitHub试一下能否登录。

from playwright.sync_api import Playwright, sync_playwright, expect




def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    # 加载本地cookies,免登陆
    context = browser.new_context(storage_state="cookie.json")

    # 打开页面继续操作
    page = context.new_page()
    page.goto('https://github.com/')
    page.pause()  # 打断点看是不是已经登录了

    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

总结

本文主要讲解了使用playwright,通过保存的cookie登录网站的操作步骤,与selenium类似,playwright也支持使用cookie登录,使我们的测试工作更加快速。

获取更多技术资料,请点击!

标签:web,playwright,登录,sync,cookie,context,page,软件测试
From: https://www.cnblogs.com/hogwarts/p/17583296.html

相关文章

  • 软件测试|超好用超简单的Python GUI库——tkinter(十四)
    前言我们知道我们可以使用pillow绘制不同形状的图形,但是我们能不能使用tkinter实现这个功能呢,当然可以,tkinter也可以实现图形的绘制,并且可以将绘制的图形添加到我们的GUI中。我们可以通过tkinter的画布控件Canvas来实现绘制功能。Canvas画布控件Canvas控件具有两个功能,首先它......
  • 软件测试|超好用超简单的Python GUI库——tkinter(十五)
    前言上一篇文章我们介绍了tkinter的Canvas画布控件,并且使用画布控件绘制了线条,本篇文章我们将介绍使用Canvas绘制更多图形。参数介绍属性说明activedash当画布对象状态为"active"的时候,绘制虚线activefill当画布对象状态为"active"的时候,填充颜色activest......
  • 软件测试|超好用超简单的Python GUI库——tkinter(十六)
    前言我们在使用各种软件时,菜单是我们最常用的功能之一,菜单以可视化的方式将一系列的“功能选项卡”进行分组,并在每个分组下又“隐藏”了许多其他的“选项卡”。当打开菜单时,这些选项卡就会“显式”的呈现出来,方便用户进行选择,比如我们常用的QQ音乐播放器,如下图:tkinter同样给我......
  • 软件测试|SQL选取数据,你会了吗?
    前言很多时候,我们是需要从表中选择数据进行操作的,表中数据那么多,我们应该如何在表中选取数据呢?SQLSELECT语句用于从表中选取符合条件的数据,该数据以临时表的形式返回,称为结果集。SELECT基本语法SELECTcolumn1,column2,columnNFROMtable_nameWHEREconditions;col......
  • webstorm的安装
    1.2.3.等待安装完成即可4.安装完成了!......
  • webpack 学习笔记2(进阶)
    1. webpack的 watch模式   执行  npxwebpack--mode=development--watch 命令的话,就是执行一次编译多次。只要你修改了相关的文件,保存后就会重新触发编译。这个比较适合多次反复调试的情况。 2. 使用Webpack-dev-server监听代码修改的同时,自动刷新网页。  np......
  • hls协议下支持h.265视频web/H5播放方案
    一般我们播放本地视频都是使用video标签,但是<video>元素只支持三种视频格式:MP4、WebM、Ogg,对于在线视频直接使用video是没法播放的,这里介绍一款做播放在线监控视频功能时使用过的一款播放器。先介绍几个概念:流协议:流协议就是在两个通信系统之间传输多媒体文件的一套规则,它定义了......
  • H265格式兼容各个浏览器网页web端H5播放方案
    可能有很多朋友会遇到H265格式的视频流无法播放,毕竟现在很多相机都支持h265了,确实有很多优点,但是它最大的问题就是很多浏览器无法播放,也有部分浏览器能够兼容h265,但是总不能让用户指定浏览器使用吧,下面来说说怎么兼容各个浏览器播放无非两种方案,第一种就是使用ffmpeg进行转码,这种方......
  • 1.如何安装webots
    来自于官网的翻译:http://www.cyberbotics.com/doc/guide/installing-webots1、运行Webots的硬件要求:1)至少一台2GHz的主频(时钟速度)以及双核CPU,建议采用4核的CPU,内存至少2GB。2)需要NVIDIA或者AMDOpenGL(最低版本3.3,OpenGraphicsLibrary,开放图形库,用于渲染2D、3D矢量图形的跨语......
  • WEB漏洞—逻辑越权之找回机制及接口安全
    #找回重置机制客户端回显,Response状态值,验证码爆破,找回流程绕过等#接口调用乱用短信轰炸,来电轰炸等1. 找回重置机制---同过验证码确定你是不是找回账号的主人,可能出现逻辑问题---客户端回显(验证码在客户端或者浏览器里面可以看到)---Response状态值(有回复的状态值如0/1,我......