devre dışı bırakılması CSS Animasyonlar/Geçişler
ngAnimation özelliğini devre dışı bırakmaya ek olarak (yani, element(by.css('body')).allowAnimations(false);
), CSS ile uygulanan bazı animasyonları devre dışı bırakmanız gerekebilir.
Bu bazen bazı tür animasyon elemanları katkıda bulduk, işte tıklanabilir 'olması iletki görünebilir (yani EC.elementToBeClickable(btnUiBootstrapModalClose)
), aslında, benim özel durumda, vb .click()
için
yanıt için İçeri giren ve çıkan bir ui.bootstrap modal ıstırap çekiyordum ve her zaman dahili 'yakın' düğmesini güvenilir bir şekilde tıklayamadım.
disabling css animations'un yardımcı olduğunu buldum. Bir stil sayfası için bir sınıf ekledi:
.notransition * {
-webkit-transition: none !important;
-moz-transition: none !important;
-o-transition: none !important;
-ms-transition: none !important;
transition: none !important;
}
... ve iletki içinde, ben gibi bir şey var:
_self.disableCssAnimations = function() {
return browser.executeScript("document.body.className += ' notransition';");
};
Orada bu kavramı uygulanması yağmurluk yolları olabilir, ama bunu buldum olabilir
Yukarıda benim için çok iyi çalıştı - testlerin stabilize edilmesine ek olarak, animasyonları beklemeden daha hızlı çalışırlar.
...
onPrepare: function() {
var disableNgAnimate = function() {
angular
.module('disableNgAnimate', [])
.run(['$animate', function($animate) {
$animate.enabled(false);
}]);
};
var disableCssAnimate = function() {
angular
.module('disableCssAnimate', [])
.run(function() {
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = '* {' +
'-webkit-transition: none !important;' +
'-moz-transition: none !important' +
'-o-transition: none !important' +
'-ms-transition: none !important' +
'transition: none !important' +
'}';
document.getElementsByTagName('head')[0].appendChild(style);
});
};
browser.addMockModule('disableNgAnimate', disableNgAnimate);
browser.addMockModule('disableCssAnimate', disableCssAnimate);
}
...
unutmayın::
@ user3345216 Bu yanıtı kabul etmek ister misiniz? benim için mükemmel çalışıyor. – manu
Bu benim için çalışmıyor gibi görünüyor. Açısal 1.2.26 ve iletki 2.0.0'ı kullanma.Chrome ve Firefox'ta yayınlanan özellikleri izleyebilir ve animasyonların hepsinin hala ateş ettiğini görebilirsiniz. –
@DavidPisoni İletici 1.8 ile deneyebilir misiniz? Başka bir şey de olabilir, çünkü diğer 2.0 göç sorunlarıyla da karşılaştık. Bir sorunu iletici projeye her zaman bildirebilirsiniz. Durum buysa: https://github.com/angular/protractor/issues – bugdayci