有没有办法从另一个页面对象文件访问一个页面对象文件中定义的元素?
实施例: 如果我们需要从LoginPage.ts文件访问'@usernameInput',我们是否需要从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: {}
};
答案 0 :(得分:1)
您可以使用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);
}
答案 1 :(得分:0)
使用LocalStoreage使用Javascript或Jquery在所有页面中保留数据和访问权限
设置您的对象
localStorage.setItem(“ PortPlans”,PortPlans);
在另一页上调用您的本地存储
var PortPlans = localStorage.getItem(“ PortPlans”);
console.log(PortPlans);