playwright-getByLabel定位

一、getByLabel定位的作用

大多数表单控件通常都有专门的标签,可以方便地用于与表单交互。在这种情况下,你可以使用其关联的标签通过 page.getByLabel定位控件。

可以看下如下html

要获取输入框为Password 的label的定位,可以使用:

java 复制代码
page.getByLabel("Password")

二、举个例子:

①先创建工具类

复制代码
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);
//        # 2. 清除当前上下文的所有 Cookie(推荐)
        context.clearCookies();
        page = context.newPage();
    }
    public void browserClose(){
        if(browser!=null){
            browser.close();
        }
    }
    public void playwrightClose() {
        if(playwright!=null){
            playwright.close();
        }
    }
 
 
}

②创建TestGetByLabel 类

java 复制代码
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;


public class TestGetByLabel {
    public static void main(String[] args)  {
        TestPlayWright test = new TestPlayWright();
        test.init();
        Page page = test.getPage();
        page.navigate("https://playwright.nodejs.cn/docs/locators");
        Locator password = page.getByLabel("Password");
        password.click();
        page.waitForTimeout(1000);
        password.highlight();
        page.waitForTimeout(1000);
        password.fill("这个通过label定位");
        page.waitForTimeout(5000);
        test.browserClose();
        test.playwrightClose();
    }
}

③运行效果:

定位到password输入框,并且输入密码如下:

三、通过葫芦娃ui自动化工具操作

①打开葫芦娃ui自动化工具
②加载对应step.xlsx和data.xlsx
③step.xlsx配置如图:

case sheet输入如下

④创建对应sheet playwright-getByLabel定位 如下,定位方法选择 getByPlaceHolder:
⑤data.xlsx 创建对应同名的sheet playwright-getByLabel定位如下:
⑥切换到工具,点击运行:

运行效果和上面一样

完全零代码,直接维护excel 就行,谢谢大家的支持,可以点个赞或转发。谢谢大家~

想要工具可以私聊哈~

相关推荐
甜到心里的蛋糕5 天前
Playwright 无头浏览器自动发布 CSDN 图文草稿的实践(持久化 profile + 图床直传)
运维·python·playwright·爬虫自动化·博客运营
长路 ㅤ   6 天前
BlogLoom 分发 Skill 03:CSDN 渠道分发 Skill 设计思路与实现
csdn·浏览器自动化·playwright·博客分发
skywalk816312 天前
这是什么意思?浏览器实机渲染,本机无 jsdom / headless
playwright·headless·jsdom
深蓝电商API13 天前
Puppeteer vs Playwright:多维度压测后的选型建议
爬虫·puppeteer·playwright
艺杯羹15 天前
当网页塞进桌面端:基于Playwright的客户端模式无头自动化回归与视觉断言
自动化测试·ui自动化·playwright·e2e测试·软件质量工程
夜郎king24 天前
基于 Java + Playwright 实现网站自动访问与数据采集(以腾讯云开发者社区为例)
java·playwright·网页数据获取
cpolar技术支持24 天前
本地 Playwright 测试报告怎么远程复盘?Trace Viewer 跑起来后,用 cpolar 分享失败现场
前端·自动化测试·测试工具·cpolar·playwright
szephyr1 个月前
Python 爬虫合规与反爬实战:从 requests 到 Playwright
爬虫·python·requests·playwright·反爬
11路没有终点1 个月前
Playwright UI 自动化数据治理实践:基于 POM 的幂等、可重跑架构设计
playwright·ui自动化测试