nextjs-starter-medusa

Форк
0
48 строк · 1.5 Кб
1
import { Locator, Page } from "@playwright/test"
2
import { BasePage } from "./base/base-page"
3

4
export class CategoryPage extends BasePage {
5
  container: Locator
6
  sortByContainer: Locator
7

8
  pageTitle: Locator
9
  pagination: Locator
10
  productsListLoader: Locator
11
  productsList: Locator
12
  productWrapper: Locator
13

14
  constructor(page: Page) {
15
    super(page)
16
    this.container = page.getByTestId("category-container")
17
    this.pageTitle = page.getByTestId("category-page-title")
18
    this.sortByContainer = page.getByTestId("sort-by-container")
19
    this.productsListLoader = this.container.getByTestId("products-list-loader")
20
    this.productsList = this.container.getByTestId("products-list")
21
    this.productWrapper = this.productsList.getByTestId("product-wrapper")
22
    this.pagination = this.container.getByTestId("product-pagination")
23
  }
24

25
  async getProduct(name: string) {
26
    const product = this.productWrapper.filter({ hasText: name })
27
    return {
28
      locator: product,
29
      title: product.getByTestId("product-title"),
30
      price: product.getByTestId("price"),
31
      originalPrice: product.getByTestId("original-price"),
32
    }
33
  }
34

35
  async sortBy(sortString: string) {
36
    const link = this.sortByContainer.getByTestId("sort-by-link").filter({
37
      hasText: sortString,
38
    })
39
    await link.click()
40
    // wait for page change
41
    await this.page.waitForFunction((linkElement) => {
42
      if (!linkElement) {
43
        return true
44
      }
45
      return linkElement.dataset.active === "true"
46
    }, await link.elementHandle())
47
  }
48
}
49

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.