我在InputBoxActions.js文件中编写了一个实用程序函数,用于从量角器的输入字段中获取文本,如下所示:
this.getTextFromInputBox = function (element) {
if (typeof element !== 'undefined') {
element.isDisplayed().then(function () {
element.isEnabled().then(function () {
element.getText().then(function(text){
return text;
})
});
});
}
};
但是,在测试规范文件中使用相同的功能时,我得到的文本值未定义。在这里,我将函数称为:
browserActions.goto(url);
var searchElement = findElements.byXpath("//input[@type='search']");
inputBoxActions.type(searchElement, 'angular');
var text = inputBoxActions.getTextFromInputBox(searchElement);
console.log(text);
我得到的结果是:
Started
undefined
(node:1412) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
.
1 spec, 0 failures
Finished in 6.082 seconds
答案 0 :(得分:0)
您最里面的return语句仅将值返回给调用它的函数,然后未使用。
-> element.getText().then(function(text){
return text;
});
如果要以这种方式实现此目标,则需要返回所有嵌套的nest。
this.getTextFromInputBox = function (element) {
if (typeof element !== 'undefined') {
return element.isDisplayed().then(function () {
return element.isEnabled().then(function () {
return element.getText().then(function (text) {
return text;
})
});
});
}else{
throw new Error(`${element} is undefined`);
}
};
想象一下,一群人互相完成一些工作。最终,您的人正在执行工作,但没有将其传递回需要的地方。