public override bool ConfirmPayment() { var inlagdaFörBetalningXpath = "//*[@id='IKFMaster_MainPlaceHolder_updBundle']/div[1]/div/table[1]/tbody/tr"; var godkännKnappXpath = "//*[@id='IKFMaster_MainPlaceHolder_BTN_SEND']"; ReadOnlyCollection <IWebElement> inlagdaFörBetalning = ChromeDriver.FindElements(By.XPath(inlagdaFörBetalningXpath)); bool kanGodkänna = inlagdaFörBetalning.Count == 1; if (kanGodkänna) { ChromeDriver.FindElementByXPath(godkännKnappXpath).Click(); Wait3Seconds.Until(x => x.Url == LandingPageAfterLoginUrl); var skickaKnappXpath = "//*[@id='IKFMaster_MainPlaceHolder_BTN_Send']"; var signeraXpath = "//*[@id='IKFMaster_MainPlaceHolder_ucVerify_BTN_OK']"; IWebElement skickaBetalningsKnapp = ChromeDriver.FindElement(By.XPath(skickaKnappXpath)); skickaBetalningsKnapp.Click(); Wait3Seconds.Until(ExpectedConditions.ElementIsVisible(By.XPath(signeraXpath))); IWebElement signeraKnapp = ChromeDriver.FindElement(By.XPath(signeraXpath)); signeraKnapp.Click(); Wait30Seconds.Until(x => x.Url == "xxx"); return(true); } return(false); }
public override void CreatePayment(int amount, DateTime paymentDate, string bankgiroPostgiro, string ocrMessage, dynamic accounts) { var toAccountXpath = "//*[@id='IKFMaster_MainPlaceHolder_A1']"; var amountXpath = "//*[@id='IKFMaster_MainPlaceHolder_A3']"; var dateXpath = "//*[@id='IKFMaster_MainPlaceHolder_A4']"; var ocrRadioButtonXpath = "//*[@id='IKFMaster_MainPlaceHolder_OCR']"; var messageXpath = "//*[@id='IKFMaster_MainPlaceHolder_A5']"; var ownNoteXpath = "//*[@id='IKFMaster_MainPlaceHolder_A6']"; var addPaymentXpath = "//*[@id='IKFMaster_MainPlaceHolder_BTN_ADB']"; Wait3Seconds.Until(x => x.FindElement(By.XPath(toAccountXpath))); IWebElement tillKonto = ChromeDriver.FindElement(By.XPath(toAccountXpath)); IWebElement belopp = ChromeDriver.FindElement(By.XPath(amountXpath)); IWebElement datum = ChromeDriver.FindElement(By.XPath(dateXpath)); IWebElement meddelande = ChromeDriver.FindElement(By.XPath(messageXpath)); IWebElement egenNotering = ChromeDriver.FindElement(By.XPath(ownNoteXpath)); IWebElement addPayment = ChromeDriver.FindElement(By.XPath(addPaymentXpath)); belopp.SendKeys(amount.ToString()); datum.SendKeys(paymentDate.ToString()); tillKonto.SendKeys(bankgiroPostgiro); meddelande.SendKeys(ocrMessage); addPayment.Click(); }
public override string Authenticate() { return(Policy.Handle <Exception>() .WaitAndRetry(3, (int x) => TimeSpan.FromSeconds(1)) .Execute(() => { NavigateToLoginPageUrl(); string loginXpath = "//*[@id='login_button']"; string imgXpath = "//*[@id='modalBody']/div/div[2]/qrcode/img"; Wait3Seconds.Until(x => ExpectedConditions.ElementIsVisible(By.XPath(loginXpath))); IWebElement frånKonto = ChromeDriver.FindElement(By.XPath(loginXpath)); frånKonto.Click(); string imgSrc = ""; Policy.Handle <Exception>() .WaitAndRetry(3, (int x) => TimeSpan.FromSeconds(0.5)) .Execute(() => { IWebElement element = ChromeDriver.FindElementByXPath(imgXpath); imgSrc = element.GetAttribute("src"); }); return $"<img alt='Scan me!' src='{imgSrc}' style='display: block;'>"; })); }
public bool IsLoggedInPreCheck() { if (!LoggedInDuringSession) { return(false); } NavigateToLandingPageAfterLoginUrl(); Wait3Seconds.Until(x => x.Url == LandingPageAfterLoginUrl); return(true); }
public List <dynamic> ListPayments() { var kommandeBetalningarXpath = "/html/body/form/table[8]"; SeleniumHelper.WaitForDocumentReady(ChromeDriver); ChromeDriver.SwitchTo().DefaultContent(); Wait3Seconds.Until(x => x.FindElement(By.TagName("iframe"))); var frame = ChromeDriver.SwitchTo().Frame(ChromeDriver.FindElement(By.TagName("iframe"))); IWebElement kommandeBetalningarTable = frame.FindElement(By.XPath(kommandeBetalningarXpath)); kommandeBetalningarTable = frame.FindElement(By.XPath(kommandeBetalningarXpath)); var kommandeBetalningarEfterRows = kommandeBetalningarTable.FindElements(By.TagName("tr")).Where(x => x.FindElements(By.TagName("td")).Count > 0).ToList(); List <dynamic> tillagdaBetalningar = new List <dynamic>(); foreach (var item in kommandeBetalningarEfterRows) { var columns = item.FindElements(By.TagName("td")).Where(x => x.Text != "" && x.Text != " ").ToList(); if (columns.Count < 5) { continue; } var date = DateTime.Parse(columns[0].Text); var reciever = columns[1].Text; var account = columns[2].Text; var amount = Double.Parse(columns[3].Text); var ocrMessage = columns[4].Text; tillagdaBetalningar.Add(new { Datum = date, Mottagare = reciever, Konto = account, Belopp = amount, Ocr = ocrMessage }); } return(tillagdaBetalningar); }
public override string Authenticate() { Policy.Handle <Exception>() .WaitAndRetry(3, (int x) => TimeSpan.FromSeconds(1)) .Execute(() => { NavigateToLoginPageUrl(); WebDriverWait wait = new WebDriverWait(ChromeDriver, TimeSpan.FromSeconds(10)); wait.Until(ExpectedConditions.ElementIsVisible((By.ClassName("shb-form-field__input")))); IWebElement textElement = ChromeDriver.FindElement(By.ClassName("shb-form-field__input")); textElement.SendKeys(PersonalNumber); var button = ChromeDriver.FindElement(By.XPath("/html/body/inss-switch-app/div/inss-app/div/main/div[1]/div/div/div[2]/inss-mbidqr/div/div[1]/form/div/div/div/shb-button-primary/div/button")); button.Click(); SeleniumHelper.WaitForDocumentReady(ChromeDriver); if (_isMobile) { var xpath = "/html/body/inss-switch-app/div/inss-app/div/main/div[1]/div/div/div[2]/inss-mbidqr/div/div[1]/div[2]/div/div[2]/shb-button-primary/div/button"; button = ChromeDriver.FindElement(By.XPath(xpath)); button.Click(); string url = GetBankIdUrl(); } Wait3Seconds.Until(x => x.FindElement(By.ClassName("shb-inss-mbid__qr-container"))); }); IWebElement svgDivEl = ChromeDriver.FindElement(By.ClassName("shb-inss-mbid__qr-container")); IWebElement element = svgDivEl.FindElement(By.TagName("svg")); string contents = (string)((IJavaScriptExecutor)ChromeDriver).ExecuteScript("return arguments[0].innerHTML;", element); string svg = $"<svg shape-rendering=\"crispEdges\" height=\"200\" width=\"200\" viewBox=\"0 0 33 33\">{contents}</svg>"; return(svg); }