private List <BacktestOrderPair> ExtractOrders() { var htmlSource = Browser.GetSourceAsync().GetAwaiter().GetResult(); var cq = CQ.Create(htmlSource); var items = cq.Find(".backtesting-content-wrapper").Find("tbody").ToList(); var orderPairs = new List <BacktestOrderPair>(); foreach (var tbody in items) { var orderPair = new BacktestOrderPair(); var trs = tbody.Cq().Find("tr").ToList(); var firstTr = trs.FirstOrDefault()?.ChildElements.Skip(2).ToList(); var secondTr = trs.LastOrDefault()?.ChildElements.Skip(1).ToList(); var ftype = firstTr[0].TextContent; var fdateTime = firstTr[1].TextContent; var fprice = firstTr[2].TextContent; orderPair.Left = OrderEventBacktest.Parse(ftype, fdateTime, fprice); if (!string.IsNullOrWhiteSpace(secondTr[1].TextContent)) { var stype = secondTr[0].TextContent; var sdateTime = secondTr[1].TextContent; var sprice = secondTr[2].TextContent; orderPair.Right = OrderEventBacktest.Parse(stype, sdateTime, sprice); } else { orderPair.Right = null; } orderPairs.Add(orderPair); } orderPairs.RemoveAt(orderPairs.Count - 1); return(orderPairs); }