首页 > 其他分享 >PlayWright(十)

PlayWright(十)

时间:2023-06-26 15:56:02浏览次数:20  
标签:playwright 登录 PlayWright cookie context page browser

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

 1、使用秘籍

①   登录网站,正常输入账号密码登录 ②   保存cookie信息 ③   使用之前cookie信息再次登录网站  

 2、小试牛刀

我们以登录一个测试平台为例,网址:http://demo.liumatest.cn/#/home/dashboard   登录代码如下:
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、再接再厉

我们接着用上边例子看下,在登录成功后的代码里添加  
page.click('#login')  # 点击登录
context.storage_state(path="cookie.json")   # 保存storage_state 到JSON文件

 

再次运行查看下,我们的cookie.json文件已经保存在当前项目地址下了   到这里,我们第二步也已经完成了   接下来,我们来直接登录网站吧,看是不是已经登录成功了
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文件中,我们查看进入网站的截图

 

至此,我们完成了需求,

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

 

标签:playwright,登录,PlayWright,cookie,context,page,browser
From: https://www.cnblogs.com/nuomituan/p/17505836.html

相关文章

  • python版本的playwright如何使用代理
      fromplaywright.sync_apiimportPlaywright,sync_playwrightwithsync_playwright()asplaywright:browser=playwright.chromium.launch()proxy_server='http://my-proxy-server.com:8080'context=browser.new_context(proxy={......
  • python版本的 playwright , 如何拦截请求,替换响应内容
         fromplaywright.sync_apiimportPlaywright,sync_playwrightdefrequest_interceptor(route,request):logger.info(request.url)if'api.js'inrequest.url:#替换响应内容route.fulfill(status=200,......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-4-playwright等待浅析
    1.简介在介绍selenium的时候,宏哥也介绍过等待,是因为在某些元素出现后,才可以进行操作。有时候我们自己忘记添加等待时间后,查了半天代码确定就是没有问题,奇怪的就是获取不到元素。然后搞了好久,或者经过别人的提示才恍然大悟没有添加等待时间。而playwright为了避免我们犯这么low的......
  • 自动化神器playwright
    一、前言 一提到WebUI自动化测试工具首要推荐的必属是Selenium,其优势在于跨平台、跨语言、完全开源、对商业用户也没有任何限制、支持分布式、拥有成熟的社区与学习文档等目前已经迭代更新到4版本。那么缺点也有比如环境配置、加载效率低、运行速度慢等。当然还有其他很......
  • 软件测试|web自动化测试神器playwright教程(二十七)
    前言使用selenium进行web自动化测试,如果我们打开了多个网页,进行网页切换时,我们需要先获取各个页面的句柄,通过句柄来区分各个页面,然后使用switch_to.window()实现切换,这样的操作比较麻烦,playwright的网页切换比selenium更为简单快捷。本文就给大家介绍一下playwright多个网页的切换......
  • 软件测试|web自动化测试神器playwright教程(二十三)
    前言我们在进行web自动化时,经常遇到一些不好操作的元素,普通的元素定位和操作容易报错,如果我们使用的selenium的话,就可以使用selenium调用js脚本进行操作。在playwright中也有类似的方法,使用page.evaluate()执行JavaScript脚本。page.evaluate()和page.evaluate_handle()之间的唯......
  • 软件测试|web自动化测试神器playwright教程(二十五)
    前言鼠标为我们使用电脑提供了很多方便,我们看到的东西就可以将鼠标移动过去进行点击就可以打开或者访问内容,当页面内容过长时,我们也可以使用鼠标滚轮来实现对整个页面内容的查看,其实playwright也有鼠标操作的方法,本文我们就来介绍playwright的鼠标操作。鼠标操作Mouse鼠标操作是基......
  • 初见PlayWright
    PlayWright特色跨浏览器:PlayWright支持所有现代的浏览器渲染引擎,包括Chromium、WebKit、Firefox,这意味着它可以驱动像Chrome、Edge、Firefox、Safari等主流浏览器跨平台:基于浏览器的特性,可以在Windows、Linux和Mac上,以headless或者headed模式运行,并且支持在安卓或者安卓模拟器上原......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-3-离线搭建playwright环境
    1.简介有些小伙伴或者童鞋们私信留言说自己是在公司局域网办公,或者公司为了安全对网络管控比较严格(尤其是一些大的国企、央企),总之就是一句话无法连到外网去在线下载,宏哥刚看到留言时觉得这问题还留言问啊,你找个有网的电脑下载好安装包然后安装就可以用了。(第一种情况及解决办法:带......
  • PlayWright(八)
    在UI自动化中,会有点击一个页面,出现一个新页面的情况,这时候我们需要获取浏览器上下文产生的新页面 1、在playwright中我们怎么切换页面具体实现步骤:withcontext.expect_page()asnew_page_info:page.click('打开新链接')new_page=new_page_info.valuenew_page.w......