量角器browser.sendKeys不更新ie中的ng-model

时间:2018-04-14 01:57:27

标签: angularjs internet-explorer testing protractor

我不确定这是否是由于IE的一般性瑕疵,但我可以看到IE将不一致地无法处理数据绑定。

具体来说,我可以通过调试尝试看看sendKeys只会与ng-model同步,直到最后一个带有sendKeys的字符,然后才会失去同步。

我尝试过各种各样的黑客攻击,甚至在浏览器中创建一个sendKeys方法试图绕过它。

browser.sendKeys = function(elementLocator, value) {
elementLocator.sendKeys(value)
var triggerEvent = function(elem) {
  var inputEvent = document.createEvent("Event");
  inputEvent.initEvent("input", true, false);
  elem.dispatchEvent(inputEvent);

  var changeEvent = document.createEvent("Event");
  changeEvent.initEvent("change", true, false);
  elem.dispatchEvent(changeEvent);

  var ngChangeEvent = document.createEvent("Event");
  ngChangeEvent.initEvent("ng-change", true, false);
  elem.dispatchEvent(ngChangeEvent);

  var event = document.createEvent("Event");
  event.initEvent("hashchange", false, true);
  document.body.dispatchEvent(event);

  event = document.createEvent("Event");
  event.initEvent("popstate", false, true);
  document.body.dispatchEvent(event);

  angular.element(document.body).scope().$apply()
}
browser.executeScript(triggerEvent, elementLocator, value)
elementLocator.click()

}

似乎没有任何效果。

0 个答案:

没有答案