Protractor 量角器/Jasmine未定义变量问题
为什么在下面的代码中变量username1是未定义的?用户名有效,但返回预期值:Protractor 量角器/Jasmine未定义变量问题,protractor,Protractor,为什么在下面的代码中变量username1是未定义的?用户名有效,但返回预期值: var AngularHomePage = function() { this.nameInput = element(by.model('yourName')); this.greeting = element(by.binding('yourName')); this.get = function() { browser.get('http://www.angularjs.org');
var AngularHomePage = function() {
this.nameInput = element(by.model('yourName'));
this.greeting = element(by.binding('yourName'));
this.get = function() {
browser.get('http://www.angularjs.org');
};
this.setName = function() {
var username;
var reader = csv.createCsvFileReader('../spece2e/sneh.csv', {
'columnsFromHeader': false,
'separator': ','
});
reader.addListener('data', function(data) {
username = data[0];
console.log('data from csv is: ',username);
//return username;
});
return username;
};
var username1=this.setName();
console.log('data being sent: ',username1);
this.nameInput.sendKeys(username1);
};
module.exports=new AngularHomePage();
是否调用过
addListener
回调?如果不是,则从不将值设置为username
,因此默认值为undefined
。即使函数是,也可能是时间问题。添加一个侦听器(一般来说——我不知道这里的csv
代表什么,也不知道它是如何实现的)`)不会同步执行该函数。console.log('csv中的数据为:'))提供正确的数据,但在此之后用户名变量变得未定义。您的username
变量被声明到setName
函数中,分配var foo=setName()时您会得到什么代码>?它再次变得未定义您的意思是数据[0]
包含一个值,但是foo
得到返回结果的是未定义的,对吗?