我正在使用以下代码从元素中捕获值,并在稍后的代码中使用sendKeys命令中的该元素。
getPort = function(){
$('#Window').element(by.id('Port')).getAttribute('value').then(function(text){
console.log(text);
return text;
});
};
var port = getPort();
我稍后(在同一个“it”块中)尝试调用sendKeys
$('#Window').element(by.id('LinkedIPAddress')).sendKeys('website:' +port);
然而,sendKeys命令总是说变量端口是未定义的值,来自该函数的控制台日志显示正确的信息,所以我知道它正在捕获正确的信息。
答案 0 :(得分:2)
让getPort()
返回承诺:
getPort = function() {
return $('#Window').element(by.id('Port')).getAttribute('value');
};
当你需要一个真正的价值时解决它:
getPort().then(function (port) {
$('#Window').element(by.id('LinkedIPAddress')).sendKeys('website:' + port);
});
答案 1 :(得分:1)
port
未定义,因为您只返回回调;不是你的方法。您还需要一个return
。这应该有效:
getPort = function(){
return $('#Window').element(by.id('Port')).getAttribute('value').then(function(text){
console.log(text);
return text;
});
};
var port = getPort();
@ alecxe的答案也很好。只是取决于你想要如何工作。