今天,我们正式开始学习 playwright吧~
我们先来创建maven项目。
一、idea新建项目


二、添加pom 依赖
java
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.huhuan</groupId>
<artifactId>webui</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>1.60.0</version>
</dependency>
<!-- 替换成这个,支持 JDK8 -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.5</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.13</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20200518</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<!-- 修复 Log4j2 错误 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.20.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
</project>

更新maven 库

三、创建测试类
bash
TestPlayWright
java
import com.microsoft.playwright.*;
import com.microsoft.playwright.options.AriaRole;
import com.microsoft.playwright.options.ServiceWorkerPolicy;
import java.util.ArrayList;
import java.util.List;
public class TestPlayWright {
public Playwright playwright;
public Browser browser;
public BrowserContext context;
public Page page;
public int slowMo = 200;
public boolean headless = false;
public String bowserName = "CHROMIUM";
public Page getPage() {
return page;
}
public void init(){
List<String> argslist = new ArrayList<String>();
argslist.add("--window-position=" + -8 + "," + 0);
playwright = Playwright.create();
switch (bowserName) {
case "CHROMIUM":
browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setArgs(argslist)
.setHeadless(headless)
.setSlowMo(slowMo));
break;
case "FIREFOX":
browser = playwright.firefox().launch(new BrowserType.LaunchOptions()
.setHeadless(headless).setArgs(argslist)
.setSlowMo(slowMo));
break;
case "WEBKIT":
browser = playwright.webkit().launch(new BrowserType.LaunchOptions()
.setHeadless(headless).setArgs(argslist)
.setSlowMo(slowMo));
break;
}
assert browser != null;
Browser.NewContextOptions contextOpts = new Browser.NewContextOptions()
.setServiceWorkers(ServiceWorkerPolicy.BLOCK); // 屏蔽所有 Service Worker
context = browser.newContext(contextOpts);
page = context.newPage();
}
public void browserClose(){
if(browser!=null){
browser.close();
}
}
public void playwrightClose() {
if(playwright!=null){
playwright.close();
}
}
public static void main(String[] args) {
TestPlayWright test = new TestPlayWright();
//初始化创建page对象
test.init();
Page page1 = test.getPage();
//打开浏览器
page1.navigate("https://www.baidu.com");
page1.waitForTimeout(100000);
//定位到搜索框
page1.locator("//*[@id=\"kw\"]").fill("aaa");
page1.waitForTimeout(100000);
//通过显式和隐式可访问性属性进行定位。
page1.getByRole(AriaRole.BUTTON,new Page.GetByRoleOptions().setName("百度一下")).click();
page1.waitForTimeout(5000);
//关闭浏览器
test.browserClose();
//关闭playwright
test.playwrightClose();
}
}
运行查看效果

运行效果
更多内容关注 公众号哈。