为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕莱坞森 2021-11-07 19:33:25
这应该很容易,但不知何故我无法让它像我希望的那样工作。我试图从下面的代码段断言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#)。任何帮助表示赞赏.. !!
查看完整描述

3 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

您可以执行类似于以下操作:


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.");


}

如果您有任何进一步的疑问,请告诉我。


查看完整回答
反对 回复 2021-11-07
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您可以使用以下逻辑进行断言


代码:


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.



查看完整回答
反对 回复 2021-11-07
?
长风秋雁

TA贡献1757条经验 获得超7个赞

我在定价服务中使用这个:


Assert.Greater(Convert.ToDouble(driver.FindElement(By.Id("account-value")).Text), 0,  

 "Acccount value is zero 0");

-- 这意味着,如果 Account 值为零,则失败。


或者如果你想为零添加断言。它可能是这样的:


string accountValue = driver.FindElement(By.Id("account-value")).Text;  

Assert.IsFalse(accountValue.Contains("0"), "Account value is zero");  

-- 希望显示为文本,如果不是,则需要使用.GetAttribute("value")= number。


查看完整回答
反对 回复 2021-11-07
  • 3 回答
  • 0 关注
  • 193 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信