playwright框架入门使用

举报
建帅小伙儿 发表于 2022/09/25 02:19:44 2022/09/25
【摘要】 playwright介绍: **网上听说这个框架很厉害,然后就有了下文,试探性玩一下** 一、安装playwright # python版本至少3.7以上pip install playwright #自动安装Chromium、Firefox、WebKit等浏览器的驱动文件python -m playwright in...

playwright介绍:

**网上听说这个框架很厉害,然后就有了下文,试探性玩一下**
  

一、安装playwright


   
  1. # python版本至少3.7以上
  2. pip install playwright
  3. #自动安装Chromium、Firefox、WebKit等浏览器的驱动文件
  4. python -m playwright install

image-1657599670451

image-1657599681140

二、脚本录制

录制命令codegen:

通过python -m playwright codegen --help 可查看所有用法
  

image-1657599781147

常用参数含义:


   
  1. -o:将录制的脚本保存到一个文件的文件名称
  2. --target:指定生成的脚本语言,默认为python,目前支持python和JS
  3. -b:指定浏览器驱动

   
  1. # 使用谷歌驱动去打开网址
  2. # 生成脚本为python脚本,且脚本名字叫login.py
  3. python -m playwright codegen --target python -o login.py -b chromium https://www.baidu.com

录制脚本:

执行:

python -m playwright codegen --target python -o login.py -b chromium https://www.baidu.com
  

会弹出录制窗口,和打开浏览器界面

image-1657600072746

操作完之后关闭窗口,查看生成脚本

login.py


   
  1. from playwright.sync_api import Playwright, sync_playwright, expect
  2. def run(playwright: Playwright) -> None:
  3. browser = playwright.chromium.launch(headless=False)
  4. context = browser.new_context()
  5. # Open new page
  6. page = context.new_page()
  7. # Go to https://www.baidu.com/
  8. page.goto("https://www.baidu.com/")
  9. # Click input[name="wd"]
  10. page.locator("input[name=\"wd\"]").click()
  11. # Click [id="\32 "] h3 >> text=懿曲折扇情
  12. with page.expect_popup() as popup_info:
  13. page.locator("[id=\"\\32 \"] h3 >> text=懿曲折扇情").click()
  14. page1 = popup_info.value
  15. page.wait_for_url("https://www.gaojs.com.cn/")
  16. # Click text=关于作者 >> nth=0
  17. page1.locator("text=关于作者").first.click()
  18. page1.wait_for_url("https://www.gaojs.com.cn/s/about")
  19. # Click text=归档 >> nth=0
  20. page1.locator("text=归档").first.click()
  21. page1.wait_for_url("https://www.gaojs.com.cn/archives")
  22. # Close page
  23. page1.close()
  24. # Close page
  25. page.close()
  26. # ---------------------
  27. context.close()
  28. browser.close()
  29. with sync_playwright() as playwright:
  30. run(playwright)

image-1657600588994

三、回放脚本

执行python login.py即可

python login.py
  

image-1657600639091

报错信息:

看样子是没有输入text导致超时退出

image-1657601005740

四、产品对比


   
  1. 1.之前操作过阿里巴巴出的uirecorder,也是录制出来之后是js代码,
  2. 发现产品还是有很多缺陷,踩坑了半个月,就放弃了,更换别的框架了.
  3. 2.个人觉得只要录制的脚本,多多少少我都觉得不太好使,
  4. 最好当个辅助使用吧,要不后续出去面试人家问你怎么做自动化,
  5. 你说你录制,估计就要凉了。
  6. 3.而且回放的时候,会产生很多问题,调试也是很耗时,一旦业务有变动或者元素啥的
  7. 有变动就可能要重新录制,也就有了重新回访调试。
  8. 4.也有可能当时对录制玩的少
  9. 5.既然网上说这个很厉害,能结合pytest分层等等,就说明还是可以的,可以一试。

五、持续更新中

既然网上已经很多人在说这个框架牛逼了,那么小编就必须要搞出来一套成体系的实战代码出来。。。

-159

文章来源: blog.csdn.net,作者:懿曲折扇情,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_41332844/article/details/126837347

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。