public override IList <PaymentModel> ScrapeStatement(ScraperConfigurationModel configuration, Chrome chromeDriver,
                                                             DateTime startFrom)
        {
            if (startFrom < DateTime.Now.AddYears(-2).AddDays(1))
            {
                startFrom = DateTime.Now.AddYears(-2).AddDays(1);
            }

            var driver = chromeDriver.Driver;

            Login(configuration, chromeDriver);

            var existingLinks = driver.FindElements(By.PartialLinkText("История операций")).ToList();

            var link1 = driver.FindElement(By.LinkText("Счета"));

            chromeDriver.MoveToElement(link1, 1, 1);

            WaitForPageLoad(driver);

            existingLinks = driver.FindElements(By.PartialLinkText("История операций")).Except(existingLinks).ToList();
            existingLinks.Single().Click();

            WaitForPageLoad(driver, 2);

            var selectBtn = driver.FindElement(By.Id("pt1:soc1::button"));

            var accountsChooser = driver.FindElement(By.Id("pt1:soc1::pop"));

            var accs = accountsChooser.FindElements(By.TagName("tr"));

            var result = new List <PaymentModel>();

            foreach (var acc in accs)
            {
                var tds = acc.FindElements(By.TagName("td"));
                if (tds.Count < 4)
                {
                    continue;
                }

                selectBtn.Click();

                WaitForPageLoad(driver, 2);

                tds[0].Click();

                WaitForPageLoad(driver, 2);


                var inputDate = driver.FindElement(By.Id("pt1:id1::fd"));
                inputDate.Click();

                WaitForPageLoad(driver, 2);

                chromeDriver.SendKeys(Enumerable.Repeat(Keys.Delete, 20).Join(""));
                WaitForPageLoad(driver);
                chromeDriver.SendKeys(Enumerable.Repeat(Keys.Backspace, 20).Join(""));
                WaitForPageLoad(driver);
                chromeDriver.SendKeys(Enumerable.Repeat(Keys.Delete, 20).Join(""));
                WaitForPageLoad(driver);
                chromeDriver.SendKeys(Enumerable.Repeat(Keys.Backspace, 20).Join(""));
                WaitForPageLoad(driver);
                chromeDriver.SendKeys(startFrom.ToString("ddMMyyyy"));

                var submit = driver.FindElement(By.Id("pt1:showButton::button"));
                submit.Click();

                WaitForPageLoad(driver, 2);

                var csv = driver.FindElement(By.Id("pt1:downloadCSVLink"));
                csv.Click();

                int waited = 0;
                while (chromeDriver.GetDownloads().Count < 1 && waited < 300)
                {
                    WaitForPageLoad(driver);
                    waited++;
                }

                var files = chromeDriver.GetDownloads();
                if (files.Count == 1)
                {
                    var csvFile    = files.First();
                    var csvContent = File.ReadAllLines(csvFile.FullName, Encoding.GetEncoding(1251)).Skip(1).Select(v => new AlphaStatement(v)).ToList();
                    var payments   = csvContent.Select(v => Statement(v.Date, v.AccountName, v.What, v.Income - v.Outcome, v.Kind, v.Ccy, v.Reference)).ToList();

                    var holdPayments = payments.Where(v => v.StatementReference == "HOLD").ToList();
                    payments = payments.Except(holdPayments).ToList();

                    result.AddRange(payments);
                    csvFile.Delete();
                }

                chromeDriver.CleanupDownloads();
            }


            return(result);
        }