想在Assert.AreEqual()中使用新行(\ n)元素

时间:2015-12-02 12:25:05

标签: c# selenium selenium-webdriver

当我没有输入任何用户名和密码并点击登录时,我会收到消息:

  

用户名字段是必需的。

     

密码字段是必需的。

它们位于HTML中的无序列表中。

在我正在使用的代码中

Assert.AreEqual("The Username field is required.\nThe Password field is required.",
        loginPage.ValidationMsgText,
        "Error at Validaion message with no credentials");

但是测试用例总是失败。

我也试过

Assert.IsTrue(loginPage.ValidationMsgText
        .Contains("The Username field is required.The Password field is required."));

但它不起作用。我是自动化新手,需要一些帮助。

我的HTML:

<div class="validation-summary-errors" data-valmsg-summary="true">
    <ul>
        <li>The Username field is required.</li>
       <li>The Password field is required.</li>
    </ul>
</div>

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

Assert.IsTrue(
loginPage.ValidationMsgText.Contains("The Username field is required.") &&
loginPage.ValidationMsgText.Contains("The Password field is required.")
);

此外,在调试时,您可以验证ValidationMsgText的实际值并使用相应的char。 (也许代替/ n,最好使用Environment.NewLine)