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

Jump to navigation Jump to search
m
mNo edit summary
Line 1,049: Line 1,049:


=== Page Objects Helper Base ===
=== Page Objects Helper Base ===
File <code>page-objects\helperBase.ts</code>
<nowiki>
import { Page } from "@playwright/test"
export class HelperBase {
  readonly page: Page
  constructor(page: Page) {
    this.page = page
  }
  async waitForNumberOfSeconds(timeInSeconds: number) {
    await this.page.waitForTimeout(timeInSeconds * 1000)
  }
}</nowiki>
File <code>page-objects\navigationPage.ts</code>
<nowiki>
...
async formLayoutsPage() {
    await this.selectGroupMenuItem("Forms")
    await this.page.getByText("Form Layouts").click()
    await this.waitForNumberOfSeconds(2)
  }
...</nowiki>
Which is used in <code>tests\usePageObjects.spec.ts</code>
<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>

Navigation menu