我正在编写一个 Protractor 测试,在我的 test.step.js 文件中我有
element(by.css('...')).getText().then(function (text) {
expect(text).to.equal('expectedText');
});
这按预期工作并通过。
相反,我创建了一个 test.page.js 文件并在其中放入this.field = element(by.css('...'));
然后在我的步骤文件中有
"use strict"
module.exports = function exampleTest() {
var TestPage = require("...");
var testPage = new TestPage;
...
test.Then(..., function (next) {
testPage.field.getText().then(function (text) {
expect(text).to.equal('expectedText');
});
});
}
那么字段是未定义的。我还尝试在页面文件中添加 getText() ,但再次未定义或被告知我无法在未定义时调用“then”。
在我看来,这应该与第一个示例执行完全相同的操作,但我远非 Angular 或 JavaScript 专家。
test.page.js 看起来像:
"use strict";
module.exports = (function () {
function TestPage() {
this.field = element(by.css('...'));
}
return TestPage;
});
希望有人能够阐明为什么会发生这种情况,以及我应该做什么才能将 CSS 选择器放入页面文件中以供重复使用。
Thanks
你的代码new TestPage;
返回构造函数TestPage
,但它从未被调用过。
您可以返回课程:
function TestPage() {
this.field = element(by.css('...'));
}
module.exports = TestPage;
var TestPage = require("...");
var testPage = new TestPage;
testPage.field.getText().then(...
或者该类的一个实例:
function TestPage() {
this.field = element(by.css('...'));
}
module.exports = new TestPage();
var testPage = require("...");
testPage.field.getText().then(...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)