public MatchDetails(string matchDate, int teamId, IWebDriver driver) { var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20)); var teamUrl = "https://www.whoscored.com/Teams/" + teamId; driver.Navigate().GoToUrl(teamUrl); IWebElement fixturesButton = wait.Until( ExpectedConditions.ElementIsVisible(By.CssSelector(Selectors.GetSelector("FixturesButton")))); fixturesButton.Click(); IEnumerable<IWebElement> matches = wait.Until( ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.CssSelector(Selectors.GetSelector("Fixtures")))); DateTime reqDate = DateTime.ParseExact(matchDate, "dd-MM-yy", CultureInfo.InvariantCulture); IWebElement matchElement = matches. FirstOrDefault(x => x.FindElement(By.CssSelector("td.date")).Text == reqDate.ToString("dd-MM-yyyy")); if (matchElement == null) { //todo: match not found, throw exception? log it to logger? return; } matchElement.FindElement(By.CssSelector(Selectors.GetSelector("MatchReport"))).Click(); wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector(Selectors.GetSelector("Date")))); WhoScoredScraper.FillObject(this, driver); HomeTeamDetails = new Details(driver, "Home"); AwayTeamDetails = new Details(driver, "Away"); }
public Generator() { var scraper = new WhoScoredScraper(); var whoScoredRepository = new MatchDetailsRepository(scraper); var whoScoredService = new WhoScoredService(whoScoredRepository); _whoScoredController = new WhoScoredController(whoScoredService); }
public Passes(IWebDriver driver, string prefix) { var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20)); IWebElement passButton = wait.Until( ExpectedConditions.ElementIsVisible(By.CssSelector(Selectors.GetSelector("PassTypesButton")))); passButton.Click(); wait.Until( ExpectedConditions.ElementIsVisible(By.CssSelector(Selectors.GetSelector("PassesTotal" + prefix)))); WhoScoredScraper.FillObject(this, driver, prefix); }
public MatchDetailsRepository(WhoScoredScraper scraper) { _scraper = scraper; }
public MatchStats(IWebDriver driver, string prefix) { WhoScoredScraper.FillObject(this, driver, prefix); }