[英]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 指針異常,因為在初始化loginButton
時page
尚未啟動。
我可以
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.