我不确定这是否是由于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()
}
似乎没有任何效果。