gpt4 book ai didi

javascript - Nightwatch(PageObject) 从不同的页面对象访问元素

转载 作者:行者123 更新时间:2023-11-29 20:54:30 25 4
gpt4 key购买 nike

有没有办法从另一个页面对象文件访问一个页面对象文件中定义的元素?

例子:如果我们需要从 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: {}
};

最佳答案

您可以使用 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);
}

关于javascript - Nightwatch(PageObject) 从不同的页面对象访问元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50029800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com