PlayWright教程--新手篇
微软开源自动化测试工具Playwright,支持主流浏览器,包括:Chrome、Firefox、Safari 等,同时支持以无头模式、有头模式运行,并提供了同步、异步的 API,可以结合主流测试框架使用,并且支持浏览器端的自动化脚本录制等功能。
- 📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢交流讨论:欢迎加入我们一起学习!
- 📢资源分享:耗时200+小时精选的「软件测试」资料包
- 📢 软件测试学习教程推荐:火遍全网的《软件测试》教程
一、简介 微软开源自动化测试工具Playwright,支持主流浏览器,包括:Chrome、Firefox、Safari 等,同时支持以无头模式、有头模式运行,并提供了同步、异步的 API,可以结合主流测试框架使用,并且支持浏览器端的自动化脚本录制等功能。 特点:
· 跨浏览器:Playwright 支持所有现代渲染引擎,包括Chromium、WebKit 和 Firefox;
· 跨平台:在 Windows、Linux 和 MacOS 上进行本地或 CI、无头或有头测试;
· 跨语言:在 TypeScript、JavaScript、Python、.NET、Java 中使用Playwright API;
· 测试移动网络:适用于 Android 和 Mobile Safari 的 Google Chrome 原生移动仿真。相同的渲染引擎适用于您的桌面和云端。
通俗的讲: 就是一款主流的自动化测试工具,可以跨平台、跨语言、开源、支持分布式、拥有成熟的社区及学习文档,主要用于接口和web自动化测试。
二、安装1、Java 开发环境搭建首先需要明确的是Java环境是使用maven管理项目的,所以我们只需用在项目中找到对应的pom文件在其中添加如下内容:
- <font size="3"><dependency>
- <groupId>com.microsoft.playwright</groupId>
- <artifactId>playwright</artifactId>
- <version>1.25.0</version>
- </dependency>
- </font>
- <font size="3">package org.example;
- import com.microsoft.playwright.*;
- public class Example {
- public static void main(String[] args) {
- try (Playwright playwright = Playwright.create()) {
- Browser browser = playwright.chromium().launch();
- Page page = browser.newPage(); page.navigate("https://www.cnblogs.com/longronglang"); System.out.println(page.title());
- }
- }
- }
- </font>
二、脚本录制
- <font size="3">npm init -y
- npm i -D @playwright/test
- </font>
- <font size="3">npx playwright codegen https://www.baidu.com(开启录屏模式)
- Npx playwright open --viewport-size 1920,1080 https://www.baidu.com
- </font>
四、常用方法介绍
- <font size="3">try (Playwright playwright = Playwright.create()) {
- Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions()
- .setHeadless(false))
- };
- </font>
- <font size="3">BrowserContext context = browser.newContext();</font>
- <font size="3">Page page = context.newPage();</font>
- <font size="3">page.locator("#kw").fill("playwright");</font>
- <font size="3">page.locator("#kw").click();</font>
- <font size="3">//单选款 (选中,已选中状态下无效)</font>
- <font size="3">//通过value值选择
- page.locator("[name='select']").selectOption("opel");
- //通过可见文本选择
- page.locator("[name='select']").selectOption(new SelectOption().setLabel("Audi"));
- </font>
- <font size="3">//常规单击
- page.locator("#mouse2").click();
- //双击
- page.locator("#mouse3").dblclick();
- //右键单击
- page.locator("#mouse5").click(new Locator.ClickOptions().setButton(MouseButton.RIGHT));
- //按住Shift键并单击
- page.locator("#mouse2").click(new Locator.ClickOptions().setModifiers(Arrays.asList(KeyboardModifier.SHIFT)));
- </font>
- <font size="3">page.locator("#user").type("playwright");</font>
- <font size="3">//模拟Ctrl+A 全选操作
- page.locator("#user").press("Control+A");
- //模拟回车操作 == > 跳转到百度页面
- page.locator(".baidu").press("Enter");
- </font>
- <font size="3">//上传一个文件
- page.locator("#load").setInputFiles(Paths.get("demo.md"));
- // 上传多个文件
- page.locator("#load").setInputFiles(new Path[]{Paths.get("pom.xml"), Paths.get("demo.md")});
- </font>
- <font size="3">// 拖拽元素
- page.locator("#A").dragTo(page.locator(".container ul:nth-of-type(2)"));
- </font>
- <font size="3">//悬浮
- page.locator("#action").hover();
- </font>
最后如果你想学习提升找不到资料,没人答疑解惑时,请及时加入群,里面有各种测试开发资料和技术可以一起交流哦:
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)