2023-06-27 21:59:01 来源 : 博客园
(相关资料图)
在web自动化测试中,经常会有登录的情况,并且每次打开页面都需要登录,非常麻烦,我们使用playwright的cookie实现自动化登录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的文件中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文件中,我们查看进入网站的截图至此,我们完成了需求,
那接下来找一个网站尝试下吧
标签: