簡體   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