我正在使用带有摩卡的Nightwatch。
我尝试从页面对象中获取元素的文本。当尝试将接收到的文本与另一个文本进行比较时,我收到错误“AssertionError:expect undefined to equal'Text'”。
这是页面对象功能:
const Commands = {
getInstanceLabel() {
this.getText('.DropdownSelect__label', (result) => {
return result.value;
});
}
}
这是测试代码:
it('Should sort the collection in ascending order by default', (client) => {
const labelText = client.page.instanceCollectionPage().getInstanceLabel();
expect(labelText).to.equal('Text');
});
为什么显示未定义?
答案 0 :(得分:1)
问题是你正在使用箭头功能,如mdn:
与函数相比,箭头函数表达式的语法更短 表达式和不绑定它自己的,参数,超级或 new.target。
你可以用两种不同的方式解决它:
it('Should launch', function (browser) {
const url = browser.launchUrl;
browser.url(url).waitForElementVisible('body', 1000);
browser.getText('#txtWelcome', function (result) {
this.verify.equal(result.value, 'Welcome');
});
});
e.g。 (您需要直接访问浏览器对象)
it('Should launch', (browser) => {
const url = browser.launchUrl;
browser.url(url).waitForElementVisible('body', 1000);
browser.getText('#txtWelcome', (result) => {
browser.verify.equal(result.value, 'Welcome');
});
});
这些只是如何使用此的示例,我无法提供有关您的问题的更多详细信息,因为您不会显示 InstanceCollection 所做的事情。