Я пытаюсь создать тест драматурга (в javascript), который использует объектную модель страницы классов, но где тестовая и объектная модель страницы не находятся в одном и том же пути к каталогу.
Проблема, с которой я сталкиваюсь, заключается в том, что он не может найти мой файл класса объектной модели страницы. Ошибка Error: Cannot find module './pom/home-page'. Что я упускаю или делаю неправильно?
Мои настройки файла и структура пути следующие:
/package.config.js
...
const config = {
testDir: './test/playwright',
...
/test/playwright/pom/home-page.js
const { expect } = require ('@playwright/test');
exports.HomePage = class HomePage {
constructor(page) {
this.page = page;
this.searchInput = page.locator('#searchInput');
this.searchButton = page.locator('#searchButton');
}
}
/test/playwright/scripts/home/search.spec.js
const {test, expect} = require('@playwright/test');
const {HomePage} = require('./pom/home-page');
test.beforeAll( async ({ page }) => { ... });
test.beforeEach( async ({ page }) => { ... });
test.afterAll( async ({ page }) => { ... });
test.describe( 'As a user I want to search', () => {
test('"mySearchTerm1" and return {the expected result}', async ({ page }) => {
const homePage = new HomePage(page);
...
});
test('"mySearchTerm2" and return {the expected result}', async ({ page }) => {
const homePage = new HomePage(page);
...
});
});





Итак, по-видимому, ссылка на файл относится к каталогу, в котором находится тест, а не к каталогу testDir, определенному в файле конфигурации. Мне нужно изменить строку 2 в search.spec.js
const {HomePage} = require('../../pom/home-page');
Те, кто использует TypeScript, могут упростить это, используя tsconfig.json.
https://playwright.dev/docs/test-typescript#manually-compile-tests-with-typescript
в тсконфиге добавить:
"baseUrl": ".",
"paths":{
"@pages/*":[
"/test/playwright/pom/*"
]
}
Затем вы можете импортировать его в свой прибор или тестовый файл следующим образом:
import { HomePage } from "@pages/home-page"
Это можно использовать для сокращения фикстур или других файлов.