【问题标题】:Protractor - click causing angular to freeze量角器 - 单击导致角度冻结
【发布时间】:2015-07-22 04:58:05
【问题描述】:

我在量角器测试时遇到问题。

测试概述

  1. 点击按钮显示表单
  2. 填写表格
  3. 单击另一个按钮以保存表单 - 这应该调用我的一个控制器中的一个函数,该函数进行 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


【解决方案1】:

而不是使用

this.addConfigFilterLineButton = element(by.css('[ng-click="cflCtrl.create();"]'));

试试这样的:

this.addConfigFilterLineButton = element(by.id('id-of-final-button'));

我的猜测是量角器没有正确找到“addConfigFilterLineButton”。

【讨论】:

  • 我认为这不是问题所在。尝试使用by.idby.partialButtonText 仍然有同样的问题。当我观看测试运行时,我可以看到按钮被按下,就像它被点击一样。但在那之后什么也没有发生。值得注意的是,我刚刚编写了另一个删除行的测试,单击确认删除提示后会发生同样的事情。一切都停止了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
相关资源
最近更新 更多