Ночные часы (PageObject) элементы доступа из другого объекта страницы

Есть ли способ получить доступ к элементам, определенным в одном файле объекта страницы, из другого файла объекта страницы?

Пример: если нам нужен доступ к @usernameInput из файла LoginPage.ts, нужно ли нам дублировать его из HomePage.ts? Есть ли другой путь?

HomePage.ts
  const page: PageObject = {
    url: ...,
    commands: [
    enterUsername: (query: string) => {
      return this
        .waitForElementVisible('@usernameInput')
  }],
    elements: {
      usernameInput: {
        locateStrategy: 'xpath',
        selector: '//input[@name="Username"]',
      }
  };

LoginPage.js
  const page: PageObject = {
    url: ...,
    commands: [
    enterUsername: (query: string) => {
      return this
        .waitForElementVisible('@usernameInput')
  }],
    elements: {}
  };

2 ответа

Вы можете получить доступ к одному объекту страницы из другого, используя this.api.page.pageObjectName,

В вашем примере вы бы просто сделать

const loginPage = this.api.page.loginPage();

А затем, чтобы получить usernameInput элемент, который вы можете просто сделать это

const usernameInput = loginPage.elements.usernameInput.selector;

Так что ваши enterUsername функция должна выглядеть примерно так

enterUsername: (query: string) => {
  const loginPage = this.api.page.loginPage();
  const usernameInput = loginPage.elements.usernameInput.selector;

  return this
    .waitForElementVisible(usernameInput)
    .setValue(usernameInput, query);
}

Используйте LocalStoreage для хранения ваших данных и доступа ко всем страницам, используя Javascript или Jquery

Установите свой объект

localStorage.setItem("PortPlans", PortPlans);

позвоните в ваше местное хранилище на другой странице

var PortPlans = localStorage.getItem ("PortPlans");

console.log (PortPlans);

Другие вопросы по тегам