前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PlayWright(十) - cookie登录态

PlayWright(十) - cookie登录态

作者头像
似小陈吖
发布2023-10-17 09:59:00
1.1K0
发布2023-10-17 09:59:00
举报
文章被收录于专栏:测试那些事

  在web自动化测试中,经常会有登录的情况,并且每次打开页面都需要登录,非常麻烦,我们使用playwright的cookie实现自动化登录

 1、使用秘籍

①   登录网站,正常输入账号密码登录

②   保存cookie信息

③   使用之前cookie信息再次登录网站

 2、小试牛刀

我们以登录一个测试平台为例,网址:http://demo.liumatest.cn/#/home/dashboard

登录代码如下:

代码语言:javascript
复制
with sync_playwright() as playwright:  # 省略了start启动
    browser = playwright.chromium.launch(headless=False, slow_mo=5000)  # 设置了每步等待时间为3s
    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()  # 省略了关闭playwright对象

运行一下,可以看到我们已经成功登录了,现在我们要保存登录的cookie信息,我们使用下边这个:

context.storage_state(path="cookie.json")

意思是什么呢?听我给你慢慢解释:

storage_state 直译为存储状态,就如直译一样,这个方法会返回当前浏览器上下文的存储状态,其中就会包含当前的cookie,我们如果提供路径参数,就会保存到指定的文件中,返回是一个字典

所以上边我们使用了path表示把cookie保存存储到cookie.json的文件中

 3、再接再厉

我们接着用上边例子看下,在登录成功后的代码里添加

代码语言:javascript
复制
page.click('#login')  # 点击登录
context.storage_state(path="cookie.json")   # 保存storage_state 到JSON文件

再次运行查看下,我们的cookie.json文件已经保存在当前项目地址下了

到这里,我们第二步也已经完成了

接下来,我们来直接登录网站吧,看是不是已经登录成功了

代码语言:javascript
复制
with sync_playwright() as playwright:  # 省略了start启动
    browser = playwright.chromium.launch(headless=False, slow_mo=5000)  # 设置了每步等待时间为3s
    
    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()  # 省略了关闭playwright对象

我们怎么检验是否登录成功呢?

选择使用screenshot的方法,意思是截图整个页面,保存在当前的image.png文件中,我们查看进入网站的截图

至此,我们完成了需求,

那接下来找一个网站尝试下吧

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  1、使用秘籍
  •  2、小试牛刀
  •  3、再接再厉
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档