我有一个典型的网页,其中包含要过滤的复选框,然后有一个下拉列表,按从低到高和从高到低的顺序进行排序。下面的列表/ xpath代码返回25个价格不同的元素。
我想做的是断言,当我从低到高选择排序选项时,我的价格应该看起来像$ 10,$ 10,$ 12,$ 15等。我在这里的下一步是什么?自从我使用list以来,已经有一段时间了,我的想法正在空白。
我认为我上次使用了Linq,对结果进行了排序并进行了比较,但是经过3个小时的观察,我已经死了。
建议?
public List<string> GetInitialSortByPrice ()
{
List<String> item = new List<string>();
IReadOnlyList<IWebElement> cells =
Browser.FindElements_byXpath("//h4[@class='price']");
foreach (IWebElement cell in cells)
{
item.Add(cell.Text);
}
return item;
}
解决方案......
List<String> item = new List<string>();
IReadOnlyList<IWebElement> cells =
Browser.FindElements_byXpath("//h4[@class='price']");
foreach (IWebElement cell in cells)
{
item.Add(cell.Text.Replace("$", ""));
}
List<decimal> listA = item.Select(s =>
decimal.Parse(s)).ToList();
List<decimal> listB = listA.OrderBy(x => x).ToList();
Assert.IsTrue(listA.SequenceEqual(listB));
这是降序排列的:
List<decimal> listB = listA.OrderByDescending(i => i).ToList();