gpt4 book ai didi

javascript - 如何调用 NightmareJs 评估函数中的方法?

转载 作者:太空宇宙 更新时间:2023-11-04 02:11:52 26 4
gpt4 key购买 nike

我正在尝试组织我的代码以使用页面对象模式,因此我基本上使用可以封装页面交互的方法创建一个模块。

我正在尝试改变这个:

it('my test step', (done) => {
nightmare
.wait()
.evaluate(() => {
return {
myname: document.querySelector('document-myname').innerHTML};
})
.then(({myname}) => {
expect(myname).toEqual(`Jorge`);
})
.then(done, done.fail);
});

进入此:

 var page = require('../util/ui/mypage');

it('my test step', (done) => {
nightmare
.wait()
.evaluate(() => {
return {
myname: page.getMyName()};
})
.then(({myname}) => {
expect(myname).toEqual(`Jorge`);
})
.then(done, done.fail);
});

mypage.js

function getMyName() {
return myname: document.querySelector('document-myname').innerHTML;
}


module.exports = {
getName: getName,
};

发生的事情是我得到了

 - Failed: page is not defined

最佳答案

您应该将 page 变量作为评估方法回调中的第二个参数传递,如 docs 中所述。 。这是因为评估方法的回调具有隔离范围,因此 Node.js 变量无法直接使用:

var page = require('../util/ui/mypage');

it('my test step', (done) => {
nightmare
.wait()
.evaluate((page) => {
return {
myname: page.getMyName()};
}, page)
.then(({myname}) => {
expect(myname).toEqual(`Jorge`);
})
.then(done, done.fail);
});

关于javascript - 如何调用 NightmareJs 评估函数中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41726786/

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