-
Playwright认识
3. Playwright环境搭建
-
Playwright简介:
-
2020年,微软(Microsoft)开源了一个名为Playwright的工具,与Selenium一样入门简单,支持多语言(Python、Java、Node.js、.NET),支持多浏览器(Chromium、Firefox、Webkit),可跨平台(Windwos、Linux、Mac OS)
-
Playwright同时支持接口自动化和UI自动化,为现代web应用提供了可靠的端到端的测试能力。
-
-
Playwright优势:
-
1)自动等待功能让自动化更可靠
-
2)自动追踪:可以很方便地配置重试策略,自动的追踪结果,以截图和录屏的方式进行记录。
-
3)断言机制:会根据网络环境进行自动断言,直到满足某种条件为止。
-
4)异步执行:Playwright基于socket进行双向通讯,支持同步与异步执行两种方式
-
5)可运行多页仿真场景:Playwright是通过上下文管理浏览器,相当于每一个测试用例都会创建一个独立的上下文,浏览器的上下文其实就是一个全新的浏览器,这种方式的好处就是在提速的同时又实现测试与测试之间的隔离,使得测试结果更加准确,所以可以实现并行执行。
-
6)强大的工具集:还我们提供了强大的工具集,例如:脚本录制工具codegen、脚本编写以及调试工具playwright等
-
Python环境:python解释器+IDE工具,不知道怎么安装的可参考:python3.4 + pycharm 环境安装 + pycharm 使用
-
Playwright环境:
-
安装Playwright:pip install playwright
-
安装内置浏览器(chromium,firefox,webkit):playwright install
-
-
4. Playwright入门实战
-
-
Playwright支持两大类元素定位方式,包括:
-
1)get_by方式
-
get_by_id
: 通过元素的 id 属性来查找元素,例如:element = page.get_by_id("my-id") -
get_by_name
: 通过元素的 name 属性来查找元素,例如:element = page.get_by_name("my-name") -
get_by_text
: 通过元素的文本内容来查找元素,例如:element = page.get_by_text("Submit") -
get_by_title
: 通过元素的 title 属性来查找元素,例如:element = page.get_by_title("my-title") -
get_by_placeholder
: 通过元素的 placeholder 属性来查找元素,例如:element = page.get_by_placeholder("my-placeholder") -
get_by_selector
: 通过 CSS 选择器来查找元素,例如:element = page.get_by_selector("#submit-button")
-
get_by_label
: 根据label属性值查找元素,类似于HTML中的label标签和对应的for属性。 -
get_by_role
: 通过角色方式定位元素,例如:element = page.get_by_role("button", name="Submit")
-
-
2)page.locator方式
-
通过ID定位元素:使用
page.locator("#element-id")
或page.locator('id=element-id')
定位。 -
通过CSS选择器定位元素:使用
page.locator("css=selector")
定位。例如:element = page.locator("button#submit-button") -
通过XPath表达式定位元素:使用
page.locator("xpath=expression")
定位。例如:element = page.locator("//button[@id='submit-button']") -
通过名称定位元素:使用
page.locator("name=element-name")
定位。 -
通过链接文本定位元素:使用
page.locator("text=link-text")
定位。 -
通过部分链接文本定位元素:使用
page.locator("partial_text=partial-link-text")
定位。 -
通过元素属性定位元素:使用
page.locator("[attribute=value]")
定位。 -
通过标签名定位元素:使用
page.locator("tag=tag-name")
定位。
-
-
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:自动化测试老司机! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!