添加从Web Driver检索的值
本文关键字:检索 Driver Web 添加 | 更新日期: 2023-09-27 18:15:40
我写了一个Webdriver c#脚本,它定位页面上的值并将这些值转换为双精度。
在我的验证测试中有三个变量:totalPrice, tax和totalbill。
我想核实一下总价+税是否等于总账单金额。
下面是我到目前为止的代码
// Total Price Variables
string totalPrice;
string totalPriceTrm;
double totalPriceDbl;
// Tax Variables
string tax;
string taxTrm;
double taxDbl;
// Total Billed Variables
string totalBilled;
string totalBilledTrm;
double totalBilledDbl;
double totalBilledAmountToVerify;
// Read in Total Price
ReadOnlyCollection<IWebElement> aa = driver.FindElements(By.Id("total_price"));
for (int k = 0; k < aa.Count; k++)
{
//Console.WriteLine("Order Number" + " " + ec[k].GetAttribute("value"));
totalPrice = aa[k].GetAttribute("value");
totalPriceTrm = totalPrice.Trim( new Char[] { ' ', 'A', 'U', 'D', '$'} );
totalPriceDbl = Convert.ToDouble(totalPriceTrm);
}
// Read in Tax
ReadOnlyCollection<IWebElement> bb = driver.FindElements(By.Id("gst"));
for (int k = 0; k < bb.Count; k++)
{
//Console.WriteLine("Order Number" + " " + ec[k].GetAttribute("value"));
tax = bb[k].GetAttribute("value");
taxTrm = tax.Trim(new Char[] { ' ', 'A', 'U', 'D', '$' });
taxDbl = Convert.ToDouble(taxTrm);
}
// Read in Total Billed
ReadOnlyCollection<IWebElement> cc = driver.FindElements(By.Id("final_price"));
for (int k = 0; k < cc.Count; k++)
{
//Console.WriteLine("Order Number" + " " + ec[k].GetAttribute("value"));
totalBilled = cc[k].GetAttribute("value");
totalBilledTrm = totalBilled.Trim(new Char[] { ' ', 'A', 'U', 'D', '$' });
totalBilledDbl = Convert.ToDouble(totalBilledTrm);
}
问题:我已经声明了一个双totalbilledounttoverify,并希望它存储totalPriceDbl + taxDbl的结果。然后,我想比较totalBilledDbl和totalBilledAmountToVerify(两者应该相等)。
然而,当我插入以下行时,我得到一条消息,告诉我totalPriceDbl和taxDbl未赋值。我认为这些变量需要包括在范围内,但我不确定如何做到这一点。
totalbilldamounttoverify = totalPriceDbl + taxDbl;
为for
循环中的变量赋值。循环中的代码可能永远不会执行(例如,如果aa.Count
为0,for (int k = 0; k < aa.Count; k++)
中的代码将不会执行),这就是为什么你会得到变量可能未赋值的错误。
为了方便地修复它,在声明变量时给它们赋一些值
double taxDbl = 0;
double totalBilledDbl = 0;
实际上你甚至不需要for
循环。FindElements(By.Id)
应该只返回一个元素。如果没有,请尝试使用css选择器来获得单个结果。