示例#1
0
        private static async Task Fill_Checkout_Payment(Browser browser, CheckoutBillerModel checkoutModel)
        {
            var container = browser.GetDocument().GetElementById("step3");

            browser.GetDocument().GetElementById("PaymentGateway_radio_gateway_creditcard").Click();

            foreach (var frameId in browser.GetFramesIds())
            {
                var frameDom = browser.GetDocument(frameId);
                var input    = frameDom.DocumentElement.GetElementByTagName("input");

                if (input != null)
                {
                    input.Focus();
                    input.Click();
                }


                if (input != null && input.HasAttribute("id") && input.GetAttribute("id") == "encryptedCardNumber")
                {
                    await(input as DOMInputElement).SetValueSlow(browser, checkoutModel.CCNumber);
                }


                if (input != null && input.HasAttribute("id") && input.GetAttribute("id") == "encryptedExpiryMonth")
                {
                    await(input as DOMInputElement).SetValueSlow(browser, checkoutModel.Card_MM);
                }


                if (input != null && input.HasAttribute("id") && input.GetAttribute("id") == "encryptedExpiryYear")
                {
                    await(input as DOMInputElement).SetValueSlow(browser, checkoutModel.Card_YY);
                }

                if (input != null && input.HasAttribute("id") && input.GetAttribute("id") == "encryptedSecurityCode")
                {
                    await(input as DOMInputElement).SetValueSlow(browser, checkoutModel.Card_CSC);
                }
            }


            await browser.WaitForReady();
        }
示例#2
0
        private static async Task Fill_Checkout_ContactInfo(Browser browser, CheckoutBillerModel checkoutModel)
        {
            var container = browser.GetDocument().GetElementById("step1");

            var editContactInfoButton = container.GetElementsByTagName("button").Where(x => x.TextContent.ToLower().Contains("edit")).FirstOrDefault();

            bool editButtonExist = editContactInfoButton != null;

            if (editButtonExist)
            {
                (editContactInfoButton as DOMElement).Click();
            }

            var firstnameDom = browser.GetDocument().GetElementById("ContactInfo_text_firstName");

            await(firstnameDom as DOMInputElement).SetValue(browser, checkoutModel.FirstName, editButtonExist);

            var lastnameDom = browser.GetDocument().GetElementById("ContactInfo_text_lastName");

            await(lastnameDom as DOMInputElement).SetValue(browser, checkoutModel.LastName, editButtonExist);



            var emailDom = browser.GetDocument().GetElementById("ContactInfo_email_email");

            await(emailDom as DOMInputElement).SetValue(browser, checkoutModel.Email, editButtonExist);


            var phoneDom = browser.GetDocument().GetElementById("ContactInfo_tel_phone");

            await(phoneDom as DOMInputElement).SetValue(browser, checkoutModel.Telephone, editButtonExist);


            var contactInfoSaveAndContinueButton = container
                                                   .GetElementsByTagName("button").Where(x =>
                                                                                         x.TextContent.ToLower().Contains("save & continue")).FirstOrDefault();

            contactInfoSaveAndContinueButton.Click();

            await browser.WaitForReady();
        }
示例#3
0
        private static async Task Fill_Checkout_PackageOptions(Browser browser, CheckoutBillerModel checkoutModel)
        {
            void _tab()
            {
                KeyParams paramers = new KeyParams(VirtualKeyCode.TAB, ' ');

                browser.KeyDown(paramers);
                browser.KeyUp(paramers);
                Debug.WriteLine("Tab");
            }

            var container = browser.GetDocument().GetElementById("step2");

            var editButton = _getEditButton(); //container.GetElementsByTagName("button").Where(x => x.TextContent.ToLower().Contains("edit")).FirstOrDefault();

            bool editButtonExist = editButton != null;

            if (editButtonExist)
            {
                (editButton as DOMElement).Click();
            }


            var domStreetAddress = browser.GetDocument().GetElementById("ShippingAddress_text_line1");

            await(domStreetAddress as DOMInputElement).SetValue(browser, checkoutModel.StreetAddress, editButtonExist);

            var domUnitNumDom = browser.GetDocument().GetElementById("ShippingAddress_text_line2"); //OPTIONAL FIELD

            await(domUnitNumDom as DOMInputElement).SetValue(browser, checkoutModel.UnitNumber, editButtonExist);


            var domPostalCode = browser.GetDocument().GetElementById("ShippingAddress_text_postalCode");

            await(domPostalCode as DOMInputElement).SetValue(browser, checkoutModel.Zipcode, editButtonExist);

            await browser.WaitForReady(); //TO PREFILL THE CITY AND STATE


            var saveAndContinueButton = container
                                        .GetElementsByTagName("button").Where(x =>
                                                                              x.TextContent.ToLower().Contains("save & continue")).FirstOrDefault();

            saveAndContinueButton.Click();

            await browser.WaitForReady();


            //FOR PAYMENT CARD

            await Task.Delay(100);

            _tab();
            await Task.Delay(100);

            _tab();
            await Task.Delay(100);

            _tab();

            //await browser.TypeKeys(checkoutModel.CCNumber);
            //_tab();
            //await Task.Delay(100);
            //await browser.TypeKeys(checkoutModel.Card_MM);
            //_tab();
            //await Task.Delay(100);
            //await browser.TypeKeys(checkoutModel.Card_YY);
            //_tab();
            //await Task.Delay(100);
            //await browser.TypeKeys(checkoutModel.Card_CSC);

            DOMNode _getEditButton()
            {
                return(container.GetElementsByTagName("button").Where(x => x.TextContent.ToLower().Contains("edit")).FirstOrDefault());;
            }
        }
示例#4
0
        public static async Task <NavigationResultErrorCode> FillCheckoutForm(this Browser browser, CheckoutBillerModel checkoutModel)
        {
            bool cartIsEmpty = browser.Doc().GetElementByClassName("OrderSummary")?.GetElementByClassName("total") == null;

            if (cartIsEmpty)
            {
                return(NavigationResultErrorCode.CartIsEmpty);
            }

            await browser.WaitForReady();

            //CONTACT INFO - 1
            await Fill_Checkout_ContactInfo(browser, checkoutModel);

            //PACKAGE OPTIONS - 2
            await Fill_Checkout_PackageOptions(browser, checkoutModel);

            //PAYMENT - 3
            // await Fill_Checkout_Payment(browser, checkoutModel);

            return(NavigationResultErrorCode.Success);
        }