正如Protractor页面上所建议的那样,我尝试在配置文件中添加以下内容:
onPrepare: function() {
var disableNgAnimate = function() {
angular.module('disableNgAnimate', []).run(['$animate', function($animate) {
$animate.enabled(false);
}]);
};
browser.addMockModule('disableNgAnimate', disableNgAnimate);
browser.getCapabilities().then(function(caps) {
browser.params.browser = caps.get('browserName');
});
}
它没有关闭动画。
我正在处理一个动画严重的网站,这会严重影响我的测试......
P.S。我正在使用Protractor的TypeScript定义,这有关系吗?
答案 0 :(得分:1)
您只停用了ng-animations。
对于我来说,让动画持续时间为1毫秒而不是关闭它会好得多。 (借口代码中的一些动画事件处理程序)
尝试下面的代码会加速CSS动画,所以它可以解决你的问题
onPrepare: function () {
// disable animations when testing
var disableAnimation = function () {
angular.module('disableAnimation', []).run(function ($animate) {
// disable css animations
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = '* {' +
'-webkit-transition-duration: 1ms !important;' +
'-moz-transition-duration: 1ms !important;' +
'-o-transition-duration: 1ms !important;' +
'-ms-transition-duration: 1ms !important;' +
'transition-duration: 1ms !important;' +
'-webkit-animation-duration: 1ms !important;' +
'-moz-animation-duration: 1ms !important;' +
'-o-animation-duration: 1ms !important;' +
'-ms-animation-duration: 1ms !important;' +
'animation-duration: 1ms !important;' +
'}';
document.getElementsByTagName('head')[0].appendChild(style);
// disable angular ng animations
$animate.enabled(false);
});
};
browser.addMockModule('disableAnimation', disableAnimation);
}