添加从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选择器来获得单个结果。

添加从Web Driver检索的值