/// <summary> /// Метод парсинга H2H матчей. /// Считывает тотал и результат матча. /// </summary> /// <param name="elements">Блоки H2H матчей на FlashScore.</param> /// <param name="driver">Веб-Драйвер.</param> /// <returns>Список матчей H2H.</returns> public static List <MatchH2H> GetH2HInfo(ReadOnlyCollection <IWebElement> elements, IWebDriver driver, string mainWindow) { List <MatchH2H> matchesH2h = new List <MatchH2H>(); foreach (var element in elements) { MatchH2H matchH2H = new MatchH2H() { TotalScore = 0, ResultOfMatch = Enums.H2HResult.None }; WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)) { PollingInterval = TimeSpan.FromMilliseconds(200) }; element.Click(); var h2hWindow = driver.WindowHandles.Where(m => !m.Equals(mainWindow)).First(); driver.SwitchTo().Window(h2hWindow); try { wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementExists(By.CssSelector("div#detail > div.summary___Cbl3b9P"))); } catch (TimeoutException) { foreach (var handle in driver.WindowHandles.Where(m => !m.Equals(mainWindow))) { driver.SwitchTo().Window(handle); driver.Close(); } driver.SwitchTo().Window(mainWindow); return(matchesH2h); } var scoreBlocks = driver.FindElements(By.CssSelector("div#detail div.part___1Pd43ek")).Where(m => !m.GetAttribute("class").Contains("part--current")); foreach (var scoreBlock in scoreBlocks) { if (!string.IsNullOrEmpty(scoreBlock.Text) && scoreBlock.Text.IsNumer()) { matchH2H.TotalScore += Int32.Parse(scoreBlock.Text); } } if (matchH2H.TotalScore != 0) { matchH2H.ResultOfMatch = Enums.H2HResult.Fineshed; } matchesH2h.Add(matchH2H); driver.Close(); driver.SwitchTo().Window(mainWindow); } foreach (var handle in driver.WindowHandles.Where(m => !m.Equals(mainWindow))) { driver.SwitchTo().Window(handle); driver.Close(); } driver.SwitchTo().Window(mainWindow); return(matchesH2h); }
public static string ToMessage(this Match m, bool UseLink, int count, double total) { if (UseLink) { if (MatchH2H.IsBigger(count, total, m.H2HMatches)) { return($"Лига {m.League}. Матч {m.FirstPlayer} - {m.SecondPlayer}. Тотал больше {total}. Ссылка - {m.Link}"); } return($"Лига {m.League}. Матч {m.FirstPlayer} - {m.SecondPlayer}. Тотал меньше {total}. Ссылка - {m.Link}"); } else if (MatchH2H.IsBigger(count, total, m.H2HMatches)) { return($"Лига {m.League}. Матч {m.FirstPlayer} - {m.SecondPlayer}. Тотал больше {total}."); } return($"Лига {m.League}. Матч {m.FirstPlayer} - {m.SecondPlayer}. Тотал меньше {total}."); }