describe('myApp',function() { var items,startCount; var testPromise = function(){ items = element.all(by.repeater('store in storelist')); var deferred = protractor.promise.defer(); items.count().then(function(orgCount){ startCount = orgCount; console.log('Start Count: '+ startCount); //prints correct value e.g,6 },function(error){ console.log(error); }); return deferred.promise; }; it('should accept valid data for adding new store',function() { var cNum = null; testPromise().then(function(result){ cNum = result; console.log('cNUm value: '+ cNum); //this value doesn't get printed in console }); /* Code for adding test fields in store page */ expect(items.count()).toBe(cNum+1); }); });
我预计在测试结束时,商店数量相同。 count()正在解决承诺,并且正确的存储计数值被打印在testPromise()中,但是当我调用testPromise()时,它将被阻塞,那么方法就不会在那个’then’块
最终结果说
Message: Expected 6 to be 1. Stacktrace: Error: Failed expectation
我也从这个链接http://selenium.googlecode.com/git/docs/api/javascript/class_webdriver_promise_Promise.html中的webdriver.promise.Promise()中进一步研究了一下,并尝试使用它来创建承诺并解决其价值,但不知道问题是什么。或者我收到错误消息说“预期6为NaN”或“预期6为1”我没有解决承诺或写“然后”正确阻止?在这个问题上,请欣赏一些见解/帮助。