【发布时间】:2017-06-09 07:26:10
【问题描述】:
场景:每当用户使用不正确的凭据登录时,都会出现 1-2 秒的引导模式,并显示消息“抱歉,凭据不正确”。 下面是模态框的 HTML。
<div class="modal-content">
<div class="modal-body note-error text-center ng-binding"> Sorry, invalid credentials! </div>
</div>
我需要验证预期的错误文本是否等于实际的错误文本。
我的代码
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!');
输出
消息: 预期 '' 匹配 '对不起,无效的凭据!'。
我不知道为什么这个等待不起作用。
【问题讨论】:
-
您是否尝试过使用
getText()直接提取文本?return errorModal.getText() -
是的,已经这样做了..
-
当
dom中有很多模态窗口并且一次仅基于某个触发器抛出 1(或没有)时,我通常会看到此问题。但量角器总是会选择dom中的第一个。如果没有,您能否粘贴完整的html...您能否检查您的 HTML 中是否有超过 1 个带有modal-body的元素? -
您可以使用下面提到的 url app.p3fy.com/#/login 并尝试使用无效凭据登录(当然您不需要有效的凭据:D)。我需要捕获出现的错误模式。问题是 textToBePresentInElement 在硒中效果很好,但在量角器中效果不佳。我试过硒,它起作用了
-
下面提到的独立 selenium 代码运行良好。我的意思是 textToBePresentInElement 正确等待 WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.textToBePresentInElement(element, "对不起,无效的凭据!")); System.out.println("got"+ element.getText());// 这打印了对不起,无效凭据!
标签: javascript angularjs automation jasmine protractor