如何验证Specflow中的两行成功文本消息



我正在验证应用程序在创建或删除值后生成的消息。

我尝试从应用程序捕获输入,来自应用程序的成功消息如下:-

的例子:

"This is a -rnText Message."

我在specflow中的输入:-

Then user verifies "This is a -r nText Message." ->Does not work

也试过了-

Then user verifies "This is a -rnText Message." ->Does not work and returns text "This is a -\r\nText Message."

请帮助。

HTML代码:

<article class="alertify-log alertify-log-success alertify-log-show">
    This is a -
    <br>
    Text Message.
<article/>

我代码:

[FindsBy(How = How.XPath, Using = "//article[@class='alertify-log alertify-log-success alertify-log-show']")]
public IWebElement AlertMessage;
public static void(string Message)
{
    string VerifyMessage = commonPage.AlertMessage.Text;
    Assert.AreEqual(Message, VerifyMessage);
    Console.WriteLine(VerifyMessage );
}

我只会做一个替换。

var test = Driver.FindElement(By.XPath("//article[@class='alertify-log alertify-log-success alertify-log-show']")).Text.Replace("-rn", "");

这将返回:

    "This is a Text Message."

那么在你的代码中,试试这个:

更改步长以查找没有"-rn">

var Message = "This is a Text Message.";  
[FindsBy(How = How.XPath, Using = "//article[@class='alertify-log alertify-log-success alertify-log-show']")]
public IWebElement AlertMessage;
public static void(string Message)
{
string VerifyMessage = commonPage.AlertMessage.Text.Replace("-rn", "");
Assert.AreEqual(Message, VerifyMessage);
Console.WriteLine(VerifyMessage );
}

您可以使用DocString (https://docs.specflow.org/projects/specflow/en/latest/Gherkin/Gherkin-Reference.html#doc-strings)参数代替普通参数。有了它,您可以指定多行字符串

你的步骤看起来像这样:

Then user verifies 
    """
    This is a
    Text Message.
    """

您可以将此多行字符串作为普通参数访问:

[Then("user verifies")]
public void BindingMethod(string parameter)
{
    //your code
}

最新更新