Ночные часы (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);