【发布时间】:2015-07-22 04:58:05
【问题描述】:
我在量角器测试时遇到问题。
测试概述
- 点击按钮显示表单
- 填写表格
- 单击另一个按钮以保存表单 - 这应该调用我的一个控制器中的一个函数,该函数进行 http 调用,然后在页面上重新加载一些模型。
当点击最后的“保存”按钮时,一切似乎都冻结了,附加的 ng-click 函数似乎永远不会被调用。当我使用browser.pause 时,我在控制台中看不到任何错误。我可以看到该按钮实际上已被点击,但此时似乎什么也没发生。
最终的按钮定义:
this.addConfigFilterLineButton = element(by.css('[ng-click="cflCtrl.create();"]'));
填表函数:
this.addNewConfigFilterLine = function (cb) {
var self = this;
var deferred = protractor.promise.defer();
browser.executeScript('window.scrollTo(0,10000);')
.then(function(){
self.newConfigFilterLineButton.click();
// code that fills out the form
self.addConfigFilterLineButton.click();
browser.waitForAngular()
.then(function(){
deferred.fulfill();
});
});
return deferred.promise;
};
规格
it('should allow creating a new ConfigFilterLine', function (done) {
var length;
settingsPage.configFilterLines.count()
.then(function(count){
length = count;
return settingsPage.addNewConfigFilterLine();
})
.then(function(){
expect(settingsPage.configFilterLines.count()).to.eventually.equal(length+1);
done();
});
});
我尝试过使用browser.waitForAngular 和不使用它,这似乎并不重要。单击按钮时,没有任何反应。
任何想法都会有所帮助。如果我可以提供更多信息,请告诉我。
【问题讨论】:
-
你有没有注意到 elementExplorer 中有什么奇怪的地方?
-
当我进入 elementExplorer 时,我看到了同样的行为。我可以选择元素并告诉它单击,但是当我这样做时,按钮保持按下状态,就好像单击被卡住一样。控制台或任何东西都没有错误。
-
好吧,如果它不适用于 elementExplorer,我想问题出在 Angular 代码本身。
-
当我只是手动测试就好了。只是通过量角器做的一个问题。
-
只是为了好玩,我尝试了两次添加
.click()命令。现在一切正常。所以由于某种原因,最初的点击并没有一直注册,但是第二次点击会一直发送命令......不知道这是怎么回事。
标签: angularjs protractor