【问题标题】:How to test toast messages in Protractor in Angular?如何在 Angular 的量角器中测试 toast 消息?
【发布时间】:2018-06-12 19:16:43
【问题描述】:

在我正在测试的应用程序中,组件类中有显示 toastr 消息的行。我正在尝试编写一个量角器测试来测试这些消息是否显示但很难。原因是我的 HTML 中没有提到 toastr,所以我真的不知道如何让量角器找到它。这是我使用 toastr 的代码。如果用户注册或更新,我想测试是否显示成功消息。

     dialogRef.afterClosed().subscribe(result => {
        console.log(result);
        if (result.success === "success") {
            this.toastr.success(result.isToEdit == true ? "User is updated successfully " : "User is created successfully.");
            this.getUsers();
        }
    });

我对这个摸不着头脑。任何帮助都会很棒。谢谢!

编辑:我相信我已经解决了这个问题。我执行以下代码来访问消息:

return element(by.css('.toast-message'))

【问题讨论】:

  • 您使用的是哪个toastr 库?
  • 在我的模块文件中: import { ToastModule } from 'ng2-toastr/ng2-toastr';

标签: angular jasmine protractor toastr


【解决方案1】:

它确实存在于 HTML 中,但仅在可见时存在。

在配置中,你可以在消息上指定一个类,通过设置messageClass

然后你可以使用 CSS 类搜索它:

https://www.npmjs.com/package/ng2-toastr#toastoptions-configurations

【讨论】:

    【解决方案2】:

    看来您需要等待烤面包机出现。 加browser.sleep(1000)等待。它是最简单且不是真正正确的解决方案,但作为第一步,您可以尝试一下。 更好的解决方案是使用await browser.wait(ExpectedConditions.visibilityOf(element), 1000, element.locator()); 让量角器等待元素出现最多 1000 毫秒,而不是阻塞整个睡眠测试

    【讨论】:

    • 感谢您的洞察力。我的主要问题是检索 toast 消息。当消息不在我的 html 中的任何位置时,我不确定如何访问该消息。唯一提到它的是我在问题中的代码。知道如何在我的对象类中检索它吗?谢谢!
    • 例如,您可以按类或 xpath 使用选择器。找出一些独特的选择器并使用它。如果某些特定的类或 id 可以传递给 toast,则最好使用它。
    • 谢谢,我想我明白了。 toast-message 似乎有效!
    • @KidA2001 你能分享一下,你是如何解决这个问题的。我也面临同样的情况
    猜你喜欢
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    相关资源
    最近更新 更多