TestCafe: объектная модель страницы - доступ ко всем экземплярам объекта с общей единой ссылкой - PullRequest
0 голосов
/ 29 ноября 2018

Страница модели-

import { Selector } from 'testcafe';

export default class Page {
    constructor () {
        this.nameInput = Selector('#developer-name');
    }
}

Страница модели2-

import { Selector } from 'testcafe';

export default class Page2 {
    constructor () {
        this.nameInput2 = Selector('#tester-name');
    }
}

общая спецификация для создания выше-

import Page from './page-model';
import Page2 from './page-model2';

const page = new Page();
const page2 = new Page2();

можем ли мы иметь один файл \Спецификация для создания экземпляров выше двух страниц, а затем получить доступ ко всем селекторам на страницах из одной ссылочной переменной?

1 Ответ

0 голосов
/ 30 ноября 2018

Если вы не хотите создавать новые экземпляры моделей страниц в каждом тесте, вы можете экспортировать их непосредственно в 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'),
    //....
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...