当我运行此测试时:
browser.get('http://www.valid-site.com').then(function(msg){
console.log(msg);
});
我希望打印1或者true表示操作成功,因为get()应该返回一个带有已解析值的promise。而是打印'null'。在API文档http://angular.github.io/protractor/#/api中,没有返回类型的指示。我很困惑哪些函数返回一个承诺,哪些函数没有。
答案 0 :(得分:4)
不确定它是否会直接回答问题,但是,如果您查看browser.get()
protractor's implementation(它包裹WebDriverJS
的{{1}}),您会看到它返回:
driver.get()
由于执行的脚本没有return this.executeScript_(
'angular.resumeBootstrap(arguments[0]);',
msg('resume bootstrap'),
moduleNames);
,这就是您看到return
已解决的原因。
但是,如果你研究一下browser.refresh()
implementation,你会发现它会返回:
null
在这种情况下,执行的脚本返回return self.executeScript_(
'return window.location.href',
'Protractor.refresh() - getUrl').then(function(href) {
return self.get(href, timeout);
});
值,您将在控制台上看到以下情况:
window.location.href
我想,您可以理解这个"Read the source, Luke" answer,因为,无论何时您不确定,都要查看来源。