如何在 Selenium c# 中断言分配给 ElementId 的值?
How to Assert value assigned to ElementId in Selenium c#?
这应该很容易,但不知何故我无法按照我希望的那样让它工作。我试图从下面的代码段断言帐户值,它确实分配了一个 ElementId。
我的目的是验证账户价值是否大于零(或者也可以做!=零)
我很困惑是使用 GetAttribute 还是只从 ElementId 中提取文本?
<div class="col-md-6 col-sm-12 w-create-account">
<label class="w-label">Value</label>
<h2 id="account-value">,00,000</h2>
</div>
我在 NUnit 上使用 Selenium(C#)。感谢任何帮助..!!
您可以执行类似以下操作:
public static decimal ConvertToNumber(string str)
{
return decimal.Parse(str, NumberStyles.Currency);
}
[Test]
public void TestAccountValue()
{
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('-')){
accountValue = "-" + accountValue.Substring(2);//Inorder to remove the currency symbol and negative sign
}
else
{
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,
"Acccount value is zero 0");
-- 这意味着,如果帐户值为零,则失败。
或者如果你想为零添加断言。它可能是这样的:
string accountValue = driver.FindElement(By.Id("account-value")).Text;
Assert.IsFalse(accountValue.Contains("0"), "Account value is zero");
--希望显示为文字,如果不是,需要用.GetAttribute("value")
=数字。
这应该很容易,但不知何故我无法按照我希望的那样让它工作。我试图从下面的代码段断言帐户值,它确实分配了一个 ElementId。
我的目的是验证账户价值是否大于零(或者也可以做!=零)
我很困惑是使用 GetAttribute 还是只从 ElementId 中提取文本?
<div class="col-md-6 col-sm-12 w-create-account">
<label class="w-label">Value</label>
<h2 id="account-value">,00,000</h2>
</div>
我在 NUnit 上使用 Selenium(C#)。感谢任何帮助..!!
您可以执行类似以下操作:
public static decimal ConvertToNumber(string str)
{
return decimal.Parse(str, NumberStyles.Currency);
}
[Test]
public void TestAccountValue()
{
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('-')){
accountValue = "-" + accountValue.Substring(2);//Inorder to remove the currency symbol and negative sign
}
else
{
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,
"Acccount value is zero 0");
-- 这意味着,如果帐户值为零,则失败。
或者如果你想为零添加断言。它可能是这样的:
string accountValue = driver.FindElement(By.Id("account-value")).Text;
Assert.IsFalse(accountValue.Contains("0"), "Account value is zero");
--希望显示为文字,如果不是,需要用.GetAttribute("value")
=数字。