Playwright-java(使用基础)

本文介绍了微软开源的自动化测试工具Playwright,如何在项目中引入,以及如何编写首个测试文件,展示了其支持主流浏览器、无头/有头模式和截图功能的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Playwright简介

微软开源自动化测试工具Playwright, 支持主流浏览器,包括 Chrome、FireFox、safari等主流浏览器, 同时支持以无头模式、有头模式运行,并提供了同步、异步的API, 可以结合主流测试框架使用。支持浏览器端的自动化脚本录制等功能。官方文档地址“Installation | Playwright Java

二、项目中引入Playwright 框架

在pom文件中添加dependency

 <dependencies>
    <dependency>
      <groupId>com.microsoft.playwright</groupId>
      <artifactId>playwright</artifactId>
      <version>1.42.0</version>
    </dependency>
  </dependencies>

三、编写第一个测试文件

package com.piestat.playright;

import com.microsoft.playwright.Browser;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;

import java.nio.file.Paths;

public class FirstTest {
    public static void main(String[] args) {
        try (Playwright playwright = Playwright.create()) {
            Browser browser = playwright.chromium().launch(
                    new BrowserType.LaunchOptions().setHeadless(false) //取消无头模式,我们才能看见浏览器操作
                    .setSlowMo(100) //减慢执行速度,以免太快
                    .setDevtools(true));
            Page page = browser.newPage();
            page.navigate("https://www.baidu.com/?tn=02003390_88_hao_pg");//打开百度
            page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("example.png")));//截屏
            page.close();
        }
    }
}


 

### Java使用 Playwright 自带浏览器的操作示例 在 Java使用 Playwright 进行自动化测试时,可以通过 `Playwright` 提供的 API 来启动内置的 Chromium、Firefox 或 WebKit 浏览器。以下是基于官方文档和常见实践的一个完整示例。 #### 启动并关闭浏览器 通过 `Playwright.create()` 方法初始化一个 Playwright 实例,并调用相应的浏览器类型(如 `chromium`)来启动浏览器实例[^2]: ```java import com.microsoft.playwright.*; public class Main { public static void main(String[] args) { try (Playwright playwright = Playwright.create()) { // 创建 Playwright 实例 Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions() .setHeadless(false)); // 设置为非无头模式以便观察操作过程 Page page = browser.newPage(); // 新建页面 // 访问目标 URL 并打印标题 page.navigate("https://www.example.com"); System.out.println("网页标题:" + page.title()); // 关闭浏览器 browser.close(); } } } ``` 此代码片段展示了如何创建一个非无头模式下的 Chromium 浏览器实例,并访问指定网站获取其标题[^4]。 #### 配置调试选项 如果需要启用开发者工具控制台进行更详细的调试,则可以按照以下方式设置环境变量[^3]: ```bash export PWDEBUG=1 ``` 随后重新执行程序即可让浏览器以更加透明的方式展示内部工作流程,方便排查问题所在之处。 #### 复杂交互处理 对于一些复杂的用户行为模拟比如填写表单字段以及点击按钮等动作,在上面基础上稍作修改便能实现: ```java page.fill("#inputFieldId", "输入值"); // 填充文本框 page.click("#submitButtonId"); // 单击提交按钮 ``` 以上命令分别对应于向具有特定 ID 的 HTML 元素填充数据与触发该元素上的鼠标事件。 #### 等待加载完成或其他条件满足后再继续下一步骤 有时为了确保某些动态内容完全呈现出来之后再做进一步的动作, 可利用如下方法之一来进行同步等待: - **固定时间间隔**: 使用 `page.waitForTimeout(milliseconds)` 函数暂停脚本一段时间. ```java page.waitForTimeout(3000); // 等三秒 ``` - **直到某个选择器可见为止**: 当期望的目标节点出现在 DOM 结构里后才往下走. ```java page.waitForSelector("#targetElementId"); ``` 这些功能可以帮助我们更好地掌控整个浏览会话期间发生的各种变化情况. ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值