Playwright自动化测试工具 java版本

Playwright

第一个程序

public static void main(String[] args) {
        Playwright playwright = Playwright.create();
//        Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false));
        BrowserType.LaunchOptions launchOptions = new BrowserType.LaunchOptions();
        launchOptions.setChannel("chrome");
        launchOptions.setHeadless(false);
        Browser browser = playwright.chromium().launch(launchOptions);
        Page page = browser.newPage();
        page.navigate("https://www.baidu.com/");
        String title = page.title();
        String url = page.url();
        System.out.println("page title is : " + title);
        System.out.println("page url is : " + url);
        browser.close();
        playwright.close();
    }

自动捕捉

mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="codegen https://www.baidu.com/"
    
debug
PWDEBUG=1
page.pause();

屏幕录制

package com.pihao.playwright;

import com.microsoft.playwright.*;

import java.nio.file.Paths;

public class TracerInspector {
    public static void main(String[] args) {
        try (Playwright playwright = Playwright.create()) {
            Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions()
                    .setHeadless(false));
            BrowserContext context = browser.newContext();

            //开始录制
            context.tracing().start(new Tracing.StartOptions()
                    .setScreenshots(true)
                    .setSnapshots(true));

            // Open new page
            Page page = context.newPage();
            // Go to https://www.bilibili.com/
            page.navigate("https://www.bilibili.com/");
            // Click text=登录
            page.click("text=登录");
            // Click [placeholder="请输入账号"]
            page.click("[placeholder=\"请输入账号\"]");
            // Fill [placeholder="请输入账号"]
            page.fill("[placeholder=\"请输入账号\"]", "15083601111");
            // Click [placeholder="请输入密码"]
            page.click("[placeholder=\"请输入密码\"]");
            // Fill [placeholder="请输入密码"]
            page.fill("[placeholder=\"请输入密码\"]", "123456");
            // Click text=注册 登录 >> div
            page.click("text=注册 登录 >> div");
            // Click div:has-text("输入手机号,注册账号")
            page.click("div:has-text(\"输入手机号,注册账号\")");
            // Fill [placeholder="请输入手机号"]
            page.fill("[placeholder=\"请输入手机号\"]", "15083601111");
            // Click [placeholder="请输入验证码"]
            page.click("[placeholder=\"请输入验证码\"]");
            // Fill [placeholder="请输入验证码"]
            page.fill("[placeholder=\"请输入验证码\"]", "123456");
            // Click text=登录/注册
            page.click("text=登录/注册");


            //结束录制
            context.tracing().stop(new Tracing.StopOptions()
                    .setPath(Paths.get("trace.zip")));
        }
    }
}

观看录制

mvn exec:java -e -D exec.mainClass=com.microsoft.playwright.CLI -D exec.args="show-trace trace.zip"


或者使用这个网址
https://trace.playwright.dev/

打开多个窗口,只要重新new 一个

多个窗口

public static void main(String[] args) {
        Playwright playwright = Playwright.create();
        Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false));
        BrowserContext context = browser.newContext();
        Page page = context.newPage();
        page.navigate("https://www.baidu.com/");
        System.out.println("page title is : " + page.title());
        System.out.println("page url is : " + page.url());

        BrowserContext context2 = browser.newContext();
        Page page2 = context2.newPage();
        page2.navigate("https://www.bilibili.com/");
        System.out.println("page title is : " + page2.title());
        System.out.println("page url is : " + page2.url());

    }

Locators Concept

//single element
Locator locator = page.locator("text = 关于百度");
//如果有多个可以指定哪一个
Locator first = locator.first();
Locator last = locator.last();
first.hover();
first.click();
//multiple element
Locator locator = page.locator("selecst#id选择器的名字");
int count = locator.count();
for (int i = 0; i < count; i++) {
    String textContent = locator.nth(i).textContent();
    System.out.println(textContent);
}
//同样可以获取到下拉框中所有的值
List<String> strings = locator.allTextContents();

Text Selectors

Locator locator = page.locator("text = 关于百度");
//如果有多个可以指定哪一个
Locator first = locator.first();
Locator last = locator.last();
first.hover();
first.click();
//注意:如果没有text=的话,要使用单引号,不然获取不到内容
Locator locator1 = page.locator("text=Your Store");
Locator locator3 = page.locator("'Your Store'");


//选择h2标签,其中内容为New Customer的
Locator locator = page.locator("h2:has-text('New Customer')");
System.out.println(locator.textContent());

//选择class=header 的div标签下的h2标签,并且h2标签中的内容为New Customer
Locator locator2 = page.locator("div.header h2:has-text('New Customer')");
System.out.println(locator2.textContent());

//form表单登入
Locator locator4 = page.locator("from input:has-text('登入')");

Frame Selector

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Handle ShadowDom Elements

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Selecting Visible Elements

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Inspect Playwright Selectors in Chrome Dev Tools

在自动捕捉的模式下,可以在控制台使用playwright 检查dom元素

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意:$ 是取多个元素, 是取多个元素, 是取多个元素,只取单个元素

在这里插入图片描述

在这里插入图片描述

Selecting elements that contain other elements

案例一

在这里插入图片描述

在这里插入图片描述

案例二

在这里插入图片描述

通过包含子的选择父的

在这里插入图片描述

在这里插入图片描述

Comma separated CSS Selectors and Xpath Union

在这里插入图片描述

在这里插入图片描述

Relative CSS Selectors in Playwright

left-of

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

right-of

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

above below

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

near

附近多少px元素

在这里插入图片描述

在这里插入图片描述

Nth Element Selector in Playwright

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

XPath Locator in Playwright

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

取第一个和最后一个

在这里插入图片描述

Complex Dynamic WebTable Handle

在这里插入图片描述

这里的scope是td标签中的属性

在这里插入图片描述

automatic login

在这里插入图片描述

在这里插入图片描述

Handle Javascript based popups

在这里插入图片描述

alert prompt confirm

在这里插入图片描述

File Upload in Playwright

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Download File

在这里插入图片描述

Maximize/Full Screen Browser

在这里插入图片描述

Video Recording

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值