コード例 #1
0
        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);
        }
コード例 #2
0
        public override void CreatePayment(int amount, DateTime paymentDate, string bankgiroPostgiro, string ocrMessage, dynamic accounts)
        {
            IJavaScriptExecutor js = ChromeDriver;

            if (accounts != null)
            {
                var frånKontoXpath = $"//*[@id='FranKontoID']/option[{accounts.Index + 3}]";

                IWebElement frånKonto = _frame.FindElement(By.XPath(frånKontoXpath));
                frånKonto.Click();
            }

            var inkorrektOcrFortsättKnapp = IsPrivate ? "//*[@id='ContinueWarnCreateNewPayment']" : "//*[@name='CreateNewGiroPayment']";
            var nyMottagareXpath          = "//*[@id='nyMottagare']";
            var bankgiroPlusgiroXpath     = "//*[@id='KTONR_BETMOTT']";
            var öppnaMenyXpath            = "/html/body/div[2]/header/div[2]/div/div/div[2]/div[3]/a/span/span[1]/span[1]";
            var ocrMeddelandeXpath        = IsPrivate ? "//*[@id='fritext0']" : "//*[@name='BET_REF']";
            var betalDatumXpath           = IsPrivate ? "//*[@id='dateField']" : "//*[@id='FORFALLODATUM']";
            var läggTillBetalningXpath    = IsPrivate ? "//*[@id='CreateNewPayment']" : "//*[@id='CreateNewGiroPayment']";
            var beloppXpath            = "//*[@id='TRANSAKTIONSBELOPP']";
            var betalaOchÖverföraXpath = "/html/body/div[2]/header/div[2]/div/div/div[1]/div/nav/div[3]/span/a";
            var betalaXpath            = "/html/body/div[2]/header/div[2]/div/div/div[2]/div[3]/div/div/div/div[1]/div[2]/nav/div[1]/div[1]/a";

            if (IsPrivate)
            {
                Wait30Seconds.Until(x => ExpectedConditions.ElementIsVisible(By.XPath(nyMottagareXpath)));
                js.ExecuteScript("var evt = document.createEvent('MouseEvents');" + "evt.initMouseEvent('click',true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0,null);" + "arguments[0].dispatchEvent(evt);", ChromeDriver.FindElement(By.XPath(nyMottagareXpath)));
            }

            IWebElement belopp           = _frame.FindElement(By.XPath(beloppXpath));
            IWebElement ocr              = ChromeDriver.FindElement(By.XPath(ocrMeddelandeXpath));
            IWebElement datum            = ChromeDriver.FindElement(By.XPath(betalDatumXpath));
            IWebElement bankgiroPlusgiro = _frame.FindElement(By.XPath(bankgiroPlusgiroXpath));

            ocr.SendKeys(ocrMessage);
            datum.SendKeys(paymentDate.ToString());
            belopp.SendKeys(amount.ToString());
            bankgiroPlusgiro.SendKeys(bankgiroPostgiro);

            js.ExecuteScript("var evt = document.createEvent('MouseEvents');" + "evt.initMouseEvent('click',true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0,null);" + "arguments[0].dispatchEvent(evt);", ChromeDriver.FindElement(By.XPath(läggTillBetalningXpath)));

            SeleniumHelper.WaitForDocumentReady(ChromeDriver);
            bool isElementDisplayed = IsElementPresent(By.XPath(inkorrektOcrFortsättKnapp));

            if (isElementDisplayed)
            {
                SeleniumHelper.WaitForDocumentReady(ChromeDriver);
                IWebElement fortsättKnapp = _frame.FindElement(By.XPath(inkorrektOcrFortsättKnapp));
                fortsättKnapp.Click();
            }

            isElementDisplayed = IsElementPresent(By.XPath(inkorrektOcrFortsättKnapp));
            if (isElementDisplayed)
            {
                SeleniumHelper.WaitForDocumentReady(ChromeDriver);
                IWebElement fortsättKnapp = _frame.FindElement(By.XPath(inkorrektOcrFortsättKnapp));
                fortsättKnapp.Click();
            }
        }
コード例 #3
0
        public override List <IWebElement> ListFromAccounts()
        {
            var frånKontoXpath = "//*[@id='IKFMaster_MainPlaceHolder_A2']/option";

            Wait30Seconds.Until(x => ExpectedConditions.ElementIsVisible(By.XPath(frånKontoXpath)));

            List <IWebElement> frånKontos = new List <IWebElement>();

            Policy.Handle <Exception>()
            .WaitAndRetry(3, (int x) => TimeSpan.FromSeconds(1))
            .Execute(() =>
            {
                frånKontos = ChromeDriver.FindElements(By.XPath(frånKontoXpath)).ToList();
            });

            return(frånKontos);
            //throw new Exception("Lyckades inte läsa in frånkonton...");
        }
コード例 #4
0
        public override List <IWebElement> ListFromAccounts()
        {
            var frånKontoXpath    = "//*[@id='FranKontoID']/option[3]";
            var frånKontoXpathAll = "//*[@id='FranKontoID']/option";

            Wait30Seconds.Until(x => ExpectedConditions.ElementIsVisible(By.XPath(frånKontoXpath)));

            List <IWebElement> frånKontos = new List <IWebElement>();

            Policy.Handle <Exception>()
            .WaitAndRetry(3, (int x) => TimeSpan.FromSeconds(1))
            .Execute(() =>
            {
                //IWebElement frånKonto = _frame.FindElement(By.XPath(frånKontoXpath));
                frånKontos = _frame.FindElements(By.XPath(frånKontoXpathAll)).Skip(2).ToList();
            });

            return(frånKontos);
            //throw new Exception("Lyckades inte läsa in frånkonton...");
        }
コード例 #5
0
 public void ValidateLogin()
 {
     Wait30Seconds.Until(x => x.Url == LandingPageAfterLoginUrl);
     LoggedInDuringSession     = true;
     LoggedInDuringSessionDate = DateTime.Now;
 }