如何在 Selenium c# 中断言分配给 ElementId 的值?

这应该很容易,但不知何故我无法让它像我希望的那样工作。我试图从下面的代码段断言Account 值,它确实分配了一个 ElementId。


我的目标是验证Account 值是否大于零(或者也可以做到!= 零)


我很困惑是使用GetAttribute还是只从 ElementId 中提取文本?


<div class="col-md-6 col-sm-12 w-create-account">

<label class="w-label">Value</label>

<h2 id="account-value">$1,00,000</h2>

</div>

我在 NUnit 上使用 Selenium(C#)。任何帮助表示赞赏.. !!


慕莱坞森
浏览 196回答 3
3回答

沧海一幻觉

您可以执行类似于以下操作:public static decimal ConvertToNumber(string str){&nbsp; &nbsp; return decimal.Parse(str, NumberStyles.Currency);}[Test]public void TestAccountValue(){&nbsp; &nbsp; Assert.IsTrue(ConvertToNumber(driver.FindElement(By.XPath("//div[contains(@class, 'w-create-account']/h2")).Text) > 0, "Account value is not greater than zero.");}如果您有任何进一步的疑问,请告诉我。

汪汪一只猫

您可以使用以下逻辑进行断言代码:var accountValue=driver.FindElement(By.Id("account-value")).Text;accountValue = accountValue.Substring(1);//Inorder to remove the currency symbol.var amount = Decimal.Parse(accountValue);Assert.IsTrue(amount > 0);//If the Amount value is greater than 0, then assertion wil be passed.假设,如果帐户值也保持负余额,则将子字符串语句替换为以下条件var accountValue=driver.FindElement(By.Id("account-value")).Text;if (accountValue.Contains('-')){&nbsp; &nbsp; accountValue = "-" + accountValue.Substring(2);//Inorder to remove the currency symbol and negative sign}else{&nbsp; &nbsp; accountValue = accountValue.Substring(1);//Inorder to remove the currency symbol.}var amount=Decimal.Parse(accountValue);Assert.IsTrue(amount > 0);//If the Amount value is greater than 0, then assertion wil be passed.

长风秋雁

我在定价服务中使用这个:Assert.Greater(Convert.ToDouble(driver.FindElement(By.Id("account-value")).Text), 0,&nbsp;&nbsp;&nbsp;"Acccount value is zero 0");-- 这意味着,如果 Account 值为零,则失败。或者如果你想为零添加断言。它可能是这样的:string accountValue = driver.FindElement(By.Id("account-value")).Text;&nbsp;&nbsp;Assert.IsFalse(accountValue.Contains("0"), "Account value is zero");&nbsp;&nbsp;-- 希望显示为文本,如果不是,则需要使用.GetAttribute("value")= number。
打开App,查看更多内容
随时随地看视频慕课网APP