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(); }
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(); }
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());; } }
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); }