Bu açılır benim popover geçerli:İletki, bir popover'ın görünmesini ve boş bir dizenin bulunup bulunmadığını kontrol etmeyi nasıl bekleyebilir? fareyle konunun üzerine bir kez
Bu html böyle görünüyor popover DOM eklenir önce :
<span
tariff-popover="popover.car2go.airport"
class="ng-isolate-scope">
<span ng-transclude="">
<span class="ng-binding ng-scope">
Airport Fee
</span>
</span>
<span
popover-placement="right"
uib-popover-html="text"
popover-trigger="mouseenter"
class="fa fa-info-circle">
</span>
</span>
budur sonra popover görülebilir:
<span
tariff-popover="popover.car2go.airport"
class="ng-isolate-scope">
<span ng-transclude="">
<span class="ng-binding ng-scope">
Airport Fee
</span>
</span>
<span
popover-placement="right"
uib-popover-html="text"
popover-trigger="mouseenter"
class="fa fa-info-circle">
</span>
<div
tooltip-animation-class="fade"
uib-tooltip-classes=""
ng-class="{ in: isOpen() }"
uib-popover-html-popup=""
title=""
content-exp="contentExp()"
placement="right"
popup-class=""
animation="animation"
is-open="isOpen"
origin-scope="origScope"
style="visibility: visible; display: block; top: -41px; left: 108.984px;"
class="ng-isolate-scope right fade popover in">
<div class="arrow">
</div>
<div class="popover-inner">
<!-- ngIf: title -->
<div
class="popover-content ng-binding"
ng-bind-html="contentExp()">
4,90€ for all rides to and from the airport
</div>
</div>
</div>
</span>
Metnin boş olup olmadığını test etmek istiyorum. Testimde, 4,90€ for all rides to and from the airport
gibi bir dizi olduğunu kontrol ediyorum. Bu dize boş olmamalıdır.
Bu eleman boş değil ve tarayıcı önce check ne kadar beklemesi gerektiğini eğer regex ile benim iletki-conf parçası kontrol etmektir:
:params: {
regexNotEmpty: '^(?!\s*$).+',
sleepTimeout: 1000
},
Bu benim iletki testidir
describe('car2go test all input fields and checkboxes', function() {
beforeEach(function() {
browser.get('http://localhost:9999/#/car2go');
browser.waitForAngular();
});
it('should display the popover-content on mouseover', function() {
var path = 'span[tariff-popover="popover.car2go.airport"]';
var pathIcon = path + ' > .fa.fa-info-circle';
var pathPopover = path + ' > .popover.ng-isolate-scope.right.fade.in';
var popoverIcon = element(by.css(pathIcon));
browser.actions().mouseMove(popoverIcon).perform();
var popover = element(by.css(pathPopover));
expect(popover.isDisplayed()).toBeTruthy();
browser.sleep(browser.params.sleepTimeout);
expect(popover.getText()).toMatch(browser.params.regexNotEmpty);
});
});
i
simgesinin üzerine geliyorum ve popover görünüp görünmediğini kontrol ediyorum. Sorun değil. Sonra popover tam olarak yüklenene kadar 1 saniye beklemek zorundayım ve boş olmadığını kontrol edebilirim.
Bu yaklaşımdaki sorun, çoğunlukla Chrome'da çalışıyor, ancak Firefox'ta daha yavaş çalışıyor. Test bir söze nasıl benzer bir şekilde yapılabilir? İletki 5 saniye kadar bekleyebilir ve metin yoksa, testi başarısızlık olarak işaretleyebilir mi?
o Olabilir 'textToBePresentInElement' bir normal ifadeyi kabul etmiyor mu? 'Browser.wait (EC.textToBePresentInElement (popover, browser.params.regexNotEmpty), 5000); 'çalışmaz. 'Browser.wait (EC.textToBePresentInElement (popover, 5000,) 've havaalanından tüm sürmek için 4,90 €');' çalışır. – mles
@mles ayy bu regex değil düzenli bir dize oldu fark etmedi. Evet, beklenen koşul normal ifadeleri kabul etmiyor. Bu durumda özel bir tane yapabilir miyiz? Teşekkürler – alecxe
Kesinlikle! “TextToBePresentInElement()” ifadesini regex'i nasıl kabul edeceğimi düşündüm. – mles