【实测】playwright 学习笔记 - 02

简介: 【实测】playwright 学习笔记 - 02

 上节课最后,我终于下载完了playwright的综合驱动。据说,之后再也不用因为用不同的浏览器而去找不同的驱动,还要区分各种版本号闹心了。受到了一致好评....

   上次第一节后收到了超多小伙伴的追更和建议,所以本教程作为弥补市面上其他的流水式官方教程,决定采用测试实践的方案来教学,也就是真实的去执行一些自动化,写自动化脚本,不断的测试出各种知识点(猜测-测试-总结-复测确认)的方法,再结合官网的词典教程,大家不但学起来轻松生动,还印象深刻。

   之前我又去了解了一下playwright,发现了一些新的有用的信息:

  • playwright并非某个小作坊的产品,其实是微软推出的新一代轻量级自动化框架,所以这产品的后续更新,发展和生态建设可以得到保障,大家可以放心无脑学。
  • 从描述上看,playwright对python相当友好,甚至可以说专为python量身定做,而它本身也完全符合python的低门槛快速简单的风格。学python的小伙伴发财了哦~
  • playwright支持录制操作,相比较selenium的录制,这个录制的更靠谱和更简单更稳定等等,但具体效果如何还需要我亲自测试才知道,别看广告看疗效嘛。不过,录制自动化这个领域因为各种垃圾的效果,一直被大佬们所歧视,希望playwright可以一举改掉这个现象。


接下来,我们要体验一下具体的录制效果。测试网站,我的一个小小的宣传页面:woqurefan.cn

按照官网教程为:在cmd或者终端输入命令启动。

python3 -m playwright codegen -o 'test_526.py' -b chromium http://woqurefan.cn/

其中python3 -m playwright codegen为录制命令的固定写法。

-o '文件名' 意思是保存代码成某个文件。

-b 驱动 网址 意思是用什么浏览器打开哪个页面,可以不写网址,自己手动输入也会被记载下来。

执行后效果为,自动打开了一个谷歌浏览器并且进入了网站页面,还同时弹出了一个代码编辑页:

image.png

并且页面自动进入了调试模式,鼠标悬浮任何元素,都可以直接显示该元素的获取定位代码。

当我点击了一下这个按钮之后,神奇的一幕发生了,这个生成的代码编辑框中居然自动添加了这一句代码:

然后我试着又点击了一下面试题进入按钮,不出意外,这句代码又自动生成了:

然后我再随便点击了一道面试题:

可以看到再次生成代码,不过这次的定位是用text文案。关于为什么会使用text文案,而非具体name等属性,请等待咱接下来的文章中会进行具体测试。

我关闭了这个页面后,可以看到刚刚的代码已经保存好了:

用pycharm打开后,我们来好好研究下这个demo脚本。

1行是导入,从这个叫sync_api的模块导入。这个名称读起来是同步接口的意思。这么想来,那么palywright应该还支持异步模式才对。看来我们之后可以再去研究下异步模式。

接着是一个def run函数 和一个主程序代码块with。with代码块只负责去调用run函数。后续如果有什么一开始要进行设置的代码可以尝试放在这个with代码块中,比如并发去调用run函数启动多个浏览器并发测试。

run函数内部,则先定义了一个变量broswer,目的应该是定义驱动和有头模式。这么看来,playwright应该还支持无头模式,并且这行代码可以修改启动不同的驱动。那我们后续如果要做多浏览器并发兼容性测试的时候,就可以从browswer这行着手(大家要经常这样举一反三的去学习和思考哦)

6行是一个context变量声明,并且是依靠browser的某个函数来实现。那么我可以认定context就是browser的一个实例。就好像browser是一张图纸,而context就是按照这个图纸做的一台实际的产品。之后我们要测试一下,如果多个声明的话,那是启动多个浏览器窗口,还是在一个浏览器下的多个标签页。

7行是page变量声明,依靠context的创建,看英文名字起来是新建了一个页面。并且下面的代码都是page.xxxxx ,看起来很像selenium的driver,但此刻我有一些疑惑,driver是可以控制多个页面多个标签页的,而这个page听起来就好像只能在当前标签页进行操作。这点需要我们后续的测试才能知晓。就不提前公布答案了,不然印象不深刻。

8行是页面的跳转,goto函数。

9-11行是具体的定位和操作,形式和selenium如出一辙。目前学到的两个方法:get_by_role("tag名",name="")    get_by_text("具体文案")   操作上学到了一种:.click() 单击。

12行是关闭页面

15行是关闭context实例

16行是关闭浏览器实例

以上三个关闭看起来比较麻烦。我们实际工作中要根据需要来选择关闭到何种程度,在pytest或者unitest中,也要把这几个关闭放在恰当的位置来让多个用例进行正常执行。尤其是在并发串联混合异步的模式下使用,这三个关闭更应该注意,后面我们会单独写一篇文章来测试三个关闭的具体效果和原理。

好,今天的课程到此为止,各位不用自己去尝试了,看这一个教程足够了。

相关文章
|
6月前
|
Web App开发 前端开发 JavaScript
介绍Chrome DevTools的使用方法,助您更好地掌握这款工具
【6月更文挑战第14天】Chrome DevTools是Chrome内置的网页调试利器,提供Elements(编辑HTML/CSS)、Console(JavaScript调试)、Sources(查看/调试JS/CSS文件)、Network(分析网络请求)和Performance(性能瓶颈分析)等面板,助力开发者优化网页性能和用户体验。通过掌握其使用,可提升开发效率。
73 2
|
27天前
|
Web App开发 JavaScript 测试技术
Playwright 测试夹具
Playwright 测试夹具
11 1
|
26天前
|
Web App开发 数据库 索引
Playwright 测试并行性
Playwright 测试并行性
22 0
|
5月前
|
Web App开发 缓存 监控
如何使用 Chrome DevTools 进行网页性能优化?
如何使用 Chrome DevTools 进行网页性能优化?
|
7月前
|
IDE 测试技术 开发工具
从零开始:使用 Playwright 脚本录制实现自动化测试
Playwright提供了一种便捷的脚本录制功能,类似于Selenium IDE。通过运行`playwright codegen`命令,你可以启动一个浏览器并记录你的操作,生成Python或异步代码。在示例中,展示了如何录制登录百度的过程,生成的代码可以直接用于自动化测试。Playwright Inspector允许你编辑和转换测试代码,支持生成Pytest格式的测试用例,方便Python开发者使用。这个功能使Playwright成为强大的Web自动化测试工具。
|
7月前
|
Web App开发 测试技术 C++
Playwright安装与Python集成:探索跨浏览器测试的奇妙世界
Playwright是新兴的跨浏览器测试工具,相比Selenium,它支持Chrome、Firefox、WebKit,执行速度快,选择器更稳定。安装Playwright只需一条`pip install playwright`的命令,随后的`playwright install`会自动添加浏览器,无需处理浏览器驱动问题。这一优势免去了Selenium中匹配驱动的烦恼。文章适合寻求高效自动化测试解决方案的开发者。
|
7月前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(二十二)-java+ selenium自动化测试-webdriver处理浏览器多窗口切换上卷(详细教程)
【4月更文挑战第14天】本文介绍了在Web自动化测试中如何使用Selenium进行浏览器窗口的切换。首先,获取浏览器窗口句柄有两种方式:获取所有窗口句柄的集合和获取当前窗口句柄。然后,通过`switchTo().window()`方法切换到目标窗口。在项目实战部分,展示了如何在京东网站上实现页面间的切换,包括点击手机链接打开新窗口,然后切换到新窗口并点击小米链接。文章还提供了两种不同的代码实现方式,并给出了运行代码后的控制台输出和浏览器动作演示。最后,作者建议将窗口切换的逻辑封装成方法以提高代码复用性。
123 0
|
7月前
|
数据采集 Web App开发 JavaScript
Python 网络爬虫技巧分享:优化 Selenium 滚动加载网易新闻策略
Python 网络爬虫技巧分享:优化 Selenium 滚动加载网易新闻策略
|
JavaScript 前端开发 测试技术
【实测】playwright 学习笔记 - 0001
【实测】playwright 学习笔记 - 0001
|
监控 测试技术
【实测】selenium脚本解决随机弹窗广告问题
【实测】selenium脚本解决随机弹窗广告问题