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

Jump to navigation Jump to search
m
Line 729: Line 729:


=== First Page Object ===
=== First Page Object ===
new file '''<code>page-objects\navigationPage.ts</code>'''
<nowiki>
import { Page } from "@playwright/test"
export class NavigationPage {
  readonly page: Page
  constructor(page: Page) {
    this.page = page
  }
  async formLayoutsPage() {
    await this.page.getByText("Forms").click()
    await this.page.getByText("Form Layouts").click()
  }
}
</nowiki>
new file '''<code>tests\usePageObjects.spec.ts</code>'''
<nowiki>
import { expect, test } from "@playwright/test"
import { NavigationPage } from "../page-objects/navigationPage"
test.beforeEach(async ({ page }, testInfo) => {
  await page.goto("http://localhost:4200/")
})
test("navigate to form page", async ({ page }) => {
  const navigateTo = new NavigationPage(page)
  await navigateTo.formLayoutsPage()
})
</nowiki>
Notes
I don't like a lot of the naming here,
* navigationPage -> navigationMenu
* formLayoutsPage -> clickFormLayouts
* navigateTo -> navigationMenu
=== Navigation Page Object ===
=== Navigation Page Object ===
=== Locators in Page Objects ===
=== Locators in Page Objects ===

Navigation menu