Scenariusz: Za każdym razem, gdy użytkownik zaloguje się przy użyciu niepoprawnych poświadczeń, pojawi się modulator ładowania początkowego przez 1-2 sekundy z komunikatem "przepraszam, nieprawidłowe dane uwierzytelniające". Poniżej znajduje się kod HTML modalu.Polecenie oczekiwania kątomierza nie może czekać na pojawienie się modemu bootstarp.
<div class="modal-content">
<div class="modal-body note-error text-center ng-binding"> Sorry, invalid credentials! </div>
</div>
Muszę sprawdzić, czy oczekiwany tekst błędu jest równy faktycznemu tekstowi błędu.
Mój kod
PageObject.js
var errorModal = element(by.css('.modal-body.note-error.text-center.ng-binding'));
this.getErrorText = function(){
var until = protractor.ExpectedConditions;
browser.wait(until.textToBePresentInElement(errorModal, "Sorry, invalid credentials!"), 3000, "Not able to find");
return errorModal.getText();
};
Spec.js
expect(Login_Page.getErrorText()).toMatch('Sorry, invalid credentials!');
Wyjście
Wiadomość: Oczekiwany '', aby dopasować „Niestety, nieprawidłowych poświadczeń ! ".
Nie wiem, dlaczego to oczekiwanie nie działa. Jakakolwiek pomoc będzie doceniona.
Czy próbowałeś wyodrębnić tekst bezpośrednio za pomocą 'getText()'? 'return errorModal.getText()' –
tak to już zrobiło .. –
Zazwyczaj widziałem ten problem, gdy jest dużo okien modalnych w 'dom' i na raz tylko 1 (lub brak) jest generowany na podstawie jakiegoś wyzwalacza. Ale Kątomierz zawsze podniesie pierwszy w "dom". Czy możesz wkleić kompletny 'html' jeśli nie ... czy możesz sprawdzić, czy masz więcej niż 1 element z' modal-body' w swoim HTML? – AdityaReddy