protected override IEnumerable <FileParserInput> DownloadTransactions() { var valueParser = ComponentContext.ResolveKeyed <IValueParser>(Constants.UniqueContainerKeys.ValueParserGermanDecimal); var account = BankAccountRepository.GetByAccountNameAndBankName(Constants.DownloadHandler.AccountNamePaymentService, Constants.DownloadHandler.BankNamePayPal); if (account == null) { account = new BankAccountEntity { BankName = Constants.DownloadHandler.BankNamePayPal, AccountName = Constants.DownloadHandler.AccountNamePaymentService }; BankAccountRepository.Insert(account); } var balanceEntries = Browser.FindElements(By.ClassName("currenciesEntry")) .Select(element => (decimal)valueParser.Parse(element.Text.CleanNumberStringFromOther())); var balance = balanceEntries.FirstOrDefault(); Browser.WaitForJavaScript(5000); TakeScreenshot("screenshot"); Browser.Navigate().GoToUrl("https://www.paypal.com/cgi-bin/webscr?cmd=_history-download"); //set date Browser.FindElement(By.Name("from_a")).Clear(); Browser.FindElement(By.Name("from_b")).Clear(); Browser.FindElement(By.Name("from_c")).Clear(); var startDate = DateTime.Now.AddYears(-2).AddDays(1); Browser.FindElement(By.Name("from_a")).SendKeys(startDate.Month.ToString()); //Month Browser.FindElement(By.Name("from_b")).SendKeys(startDate.Day.ToString()); //Day Browser.FindElement(By.Name("from_c")).SendKeys(startDate.Year.ToString()); //Year var downloadType = new SelectElement(Browser.FindElement(By.Name("custom_file_type"))); downloadType.SelectByValue("comma_balaffecting"); var resultingFile = DownloadFromWebElement(Browser.FindElement(By.Name("submit.x")), "transactions"); yield return(new FileParserInput { OwningEntity = account, FileParser = ComponentContext.ResolveKeyed <IFileParser>(Constants.UniqueContainerKeys.FileParserPayPal), FilePath = resultingFile, TargetEntity = typeof(PayPalTransactionEntity), Balance = balance, BalanceSelectorFunc = () => BankTransactionRepository.TransactionSumForAccountId(account.Id) }); }