Uważam, że przypadkiem użycia jest uzyskanie elementów za pomocą podstawowych funkcji javascript, gdy tylko css
i inne lokalizatory elementów nie pomogą lub nie mają właściwości, których moglibyśmy użyć. Scenariusze -
- Jeśli otrzymujesz element za pomocą języka JavaScript funkcje przekazaniem go do
browser.executeScript
następnie by.js
można stosować go zastąpić.
Przykład: -
Załóżmy, że jeśli trzeba było uzyskać element, który pojawia się na szczycie między nimi, można dostać to w ten sposób -
var ele = element(by.js(function(){
var ele1 = document.getElementById('#ele1');
var ele2 = document.getElementById('#ele2');
var val = ele1.compareDocumentPosition(ele2);
if(val === 4) return ele1;
else return ele2;
}));
- Jeśli chcesz uzyskać element za pomocą jego wartości css, takich jak kolor, czcionka, itp. ... Chociaż
filter
może być używany w tym przypadku, ale obsługuje go także by.js
.
- Jeśli elementy nie są dostępne css lub XPath lub innych lokalizatorów np pseudoelementy które mają animacji lub przejścia.
Przykład: -
Załóżmy, że jeśli istnieje element, który ma :before
i :after
przejścia -
.element:before {
color: rgb(255, 0, 0);
}
Aby sprawdzić kolor elementu, możemy użyć by.js
przekazując javascript rachunku Aby uzyskać element -
var ele = element(by.js(function(){
return window.getComputedStyle(document.querySelector('.element'), ':before');
}));
expect(ele.getCssValue('color')).toEqual('rgb(255, 0, 0)');
Mam nadzieję, że to pomaga.
Interesujące przypadki użycia, teraz mogę sobie wyobrazić, gdzie mogłem użyć 'by.js'. Dzięki! – alecxe
Świetne punkty! Uwielbiam notatkę o computedStyle! –