gpt4 book ai didi

javascript - JavaScript( Protractor )中函数的值返回为未定义

转载 作者:行者123 更新时间:2023-11-30 08:00:26 27 4
gpt4 key购买 nike

我正在使用 Protractor 检索文本。

其中一个函数是

//get the Impersonation ID
this.getUserSessionID = function(){
//get whole text
UserImpersonateTextElement.getText().then(function(text) {
var tempText = text;
var startString = 'session ID is ';
var sessionID = tempText.substring(tempText.lastIndexOf(startString)+startString.length,tempText.length);
console.log('sessionID is:'+sessionID);
return sessionID;
});
};

我在另一个js文件中调用这个函数(我导入了上面的js文件)

var getUserImpersonationID = ImpersonationSuccessPage.getUserSessionID();

当我尝试的时候

console.log('User Impersonation ID is:'+getUserImpersonationID);

我得到未定义的值。

但是函数中的 console.log('sessionID is:'+sessionID); 显示正确的值。

谁能指出我在这里做错了什么?

最佳答案

获取文本的内部调用返回一个 promise 。继续并返回该 promise ,然后您可以在对 getUserSessionID 的调用中链接一个 then。示例

this.getUserSessionID = function(){
//get whole text
return UserImpersonateTextElement.getText().then(function(text) {
var tempText = text;
var startString = 'session ID is ';
var sessionID = tempText.substring(tempText.lastIndexOf(startString)+startString.length,tempText.length);
console.log('sessionID is:'+sessionID);
return sessionID;
});
};

在通话中你会做的:

getUserSessionID().then(function(sessionId){
console.log('You session ID is ',sessionId);
})

或者,由于 expect 假设要解决该 promise,您可以检查您是否具有 expect 的 ID:

expect(this.getUserSessionID()).not.toBeNull();

关于javascript - JavaScript( Protractor )中函数的值返回为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29633969/

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