我无法在selenium c sharp中实现双重查找元素。我只有一个if语句,根据条件,我从第一个篮子摘要中选择第一个基本值,否则我从第二个篮子摘要中选择第一个基本值。
下面的代码无法识别basevalue [0],因为错误说明:iweb元素不包含' basePrice'的定义。没有扩展方法&base;基本价格' accedpt第一个类型' IWebElement'可以找到。我错过了参考。
我想如何实施以下代码来满足我想要涵盖的内容?
var basketSummary = _driver.FindElements(CommonPageElements.BasketSummaryContent);
var basePrice = _driver.FindElements(CommonPageElements.BasePriceValue);
if (basketLocation.ToLower() == "top")
{
decimal basketSummaryPrice = decimal.Parse(basketSummary[0].basePrice[0].Text, NumberStyles.Currency, _ci);
return basketSummaryPrice;
}
else
{
decimal basketSummaryPrice = decimal.Parse(basketSummary[1].basePrice[0].Text, NumberStyles.Currency, _ci);
return basketSummaryPrice;
}
答案 0 :(得分:1)
我认为您可能对您的错误有轻微的误解,这不是引用的问题。问题是,当您basketSummary[0]
执行IWebElement
类型的对象时,此类型没有名为basePrice
的属性或函数。在这种情况下,basePrice
是'IWebElemet'
我认为您要做的就是在FindElements(CommonPageElements.BasePriceValue)
上致电basketSummary[0]
。
我没有IDE方便,所以我不能保证100%准确的代码,但尝试这样的事情:
var basketSummary = _driver.FindElements(CommonPageElements.BasketSummaryContent);
if (basketLocation.ToLower() == "top")
{
decimal basketSummaryPrice = decimal.Parse(basketSummary[0].FindElements(CommonPageElements.BasePriceValue)[0].Text, NumberStyles.Currency, _ci);
return basketSummaryPrice;
}
else
{
decimal basketSummaryPrice = decimal.Parse(basketSummary[1].FindElements(CommonPageElements.BasePriceValue)[0].Text, NumberStyles.Currency, _ci);
return basketSummaryPrice;
}
您会注意到线条的细微差别:
decimal basketSummaryPrice = decimal.Parse(basketSummary[0].FindElements(CommonPageElements.BasePriceValue)[0].Text, NumberStyles.Currency, _ci);
和
decimal basketSummaryPrice = decimal.Parse(basketSummary[1].FindElements(CommonPageElements.BasePriceValue)[0].Text, NumberStyles.Currency, _ci);
我还删除了声明var basePrice
的行,因为它不需要。