Udemy Playwright: Web Automation Testing From Zero to Hero: Difference between revisions

Jump to navigation Jump to search
m
Line 792: Line 792:


=== Locators in Page Objects ===
=== Locators in Page Objects ===
Modifying the previous example
<nowiki>
  readonly formLayoutsMenuItem: Locator
  readonly datePickerMenuItem: Locator
  ...
  constructor(page: Page) {
    this.page = page
    this.formLayoutsMenuItem = page.getByText("Form Layouts")
    this.datePickerMenuItem = page.locator(".menu-item").getByText("Datepicker")
    ...
  }
  async formLayoutsPage() {
    await this.selectGroupMenuItem("Forms")
    await this.formLayoutsMenuItem.click()
  }
 
  ...
</nowiki>
Presenter pointed out that you can end up with long lists of fields, and constructor lines, resulting in hard to review and maintain code. You're probably better off just leaving them hard coded in the action methods.
=== Parameterised Methods ===
=== Parameterised Methods ===
=== Date Picker Page Object ===
=== Date Picker Page Object ===
=== Page Objects Manager ===
=== Page Objects Manager ===
=== Page Objects Helper Base ===
=== Page Objects Helper Base ===

Navigation menu