Если вы не хотите создавать новые экземпляры моделей страниц в каждом тесте, вы можете экспортировать их непосредственно в model.js:
test.js
import { pageOne, pageTwo } from './model';
fixture `fixture 1`
.page `http://example.com`;
test(`test`, async t => {
await t
.click(pageOne.el1)
//...navigation to page two
.click(pageTwo.el2);
});
модель.js
import { Selector } from 'testcafe';
class PageOne {
constructor () {
this.el1 = Selector('#el1');
//....
}
}
class PageTwo {
constructor () {
this.el2 = Selector('#el2');
//....
}
}
export const pageOne = new PageOne();
export const pageTwo = new PageTwo();
ОБНОВЛЕНИЕ
Также вы можете организовать все селекторы в отдельном модуле следующим образом:
test.js
import selectors from './selectors';
fixture `fixture 1`
.page `http://example.com`;
test(`test`, async t => {
await t
.click(selectors.el1)
.click(selectors.el2);
});
selectors.js
import { Selector } from 'testcafe';
export default {
el1: Selector('#el1'),
el2: Selector('#el2'),
//....
}