繁体   English   中英

定位器和页面 Object Model

[英]Locators and Page Object Model

我想在我的页面对象中使用 Playwright 的定位器 我找到了Javascript 的示例(为简洁起见,已删除):

import { Page } from '@playwright/test';

export class TodoPage {
  listItems = this.page.locator('.todo-list li');

  constructor(public readonly page: Page) { }
}

尝试在我的 Java 代码中做同样的事情:

public class LoginPage {

    private Page page;

    private Locator loginButton = this.page.locator("#loginButton");

    public LoginPage(Page page){
        this.page = page;
    }
}

抛出 null 指针异常,因为在初始化loginButtonpage尚未启动。

我可以

private Locator loginButton;

public LoginPage(Page page){
    this.page = page;

    loginButton =  this.page.locator("#loginButton");
}

但是对于大页面 object 类来说,这会变得有点冗长/混乱。

关于如何在 Java 中做到这一点的任何想法?

谢谢!

您可以将 Locator 定义放在构造函数中:

public class LoginPage {

    private Page page;
    private Locator loginButton;

    public LoginPage(Page page){
        this.page = page;
        this.loginButton = this.page.locator("#loginButton");
    }
}

我可以创建一个定位器 class:

public class LoginPageLocators {

    public Locator LoginButton;

    public LoginPageLocators(Page page) {
        LoginButton = page.locator("#loginButton");
    }
}

然后通过例如 locators.LoginButton.click locators.LoginButton.click()访问页面 object class 中的定位器。

它不会避免笨拙/混乱,但至少将其从页面 object class 中隐藏起来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM