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

Jump to navigation Jump to search
m
Line 991: Line 991:


=== Page Objects Manager ===
=== Page Objects Manager ===
File: <code>page-objects\pageManager.ts</code>
<nowiki>
import { Page, expect } from "@playwright/test"
import { NavigationPage } from "../page-objects/navigationPage"
import { FormLayoutsPage } from "../page-objects/formLayoutsPage"
import { DatePickerPage } from "../page-objects/datePickerPage"
export class PageManager {
  private readonly page: Page
  private readonly navigationPage: NavigationPage
  private readonly formLayoutsPage: FormLayoutsPage
  private readonly datePickerPage: DatePickerPage
  constructor(page: Page) {
    this.page = page
    this.navigationPage = new NavigationPage(this.page)
    this.formLayoutsPage = new FormLayoutsPage(this.page)
    this.datePickerPage = new DatePickerPage(this.page)
  }
  navigateTo = () => this.navigationPage
  onFormLayoutsPage = () => this.formLayoutsPage
  onDatePickerPage = () => this.datePickerPage
}</nowiki>
<nowiki>
test("Page Manger", async ({ page }) => {
  const pm = new PageManager(page)
  await pm.navigateTo().formLayoutsPage()
  await pm.onFormLayoutsPage().submitUsingTheGridFormWithCredentialsAndSelectOption(
    "test@test.com",
    "Welcome1",
    "Option 2"
  )
  await pm.onFormLayoutsPage().submitInLineFormWithNameEmailAndCheckbox(
    "John Smith",
    "john@test.com",
    true
  )
  await pm.navigateTo().datePickerPage()
  await pm.onDatePickerPage().selectCommonDatePickerDateFromToday(10)
  await pm.onDatePickerPage().selectDatePickerWithRangeFromToday(6 ,15)
})</nowiki>
=== Page Objects Helper Base ===
=== Page Objects Helper Base ===

Navigation menu