protected PayexCardFramePage GoToPayexCardPaymentFrame(Product[] products, Checkout.Option checkout = Checkout.Option.Anonymous) { switch (checkout) { case Checkout.Option.LocalPaymentMenu: return(GoToLocalPaymentPage(products) .CreditCard.IsVisible.WaitTo.BeTrue() .CreditCard.Click() .PaymentFrame.SwitchTo <PayexCardFramePage>()); case Checkout.Option.Anonymous: case Checkout.Option.Standard: default: var paymentframePage = GoToPaymentFramePage(products, checkout) .PaymentMethods[x => x.Name == PaymentMethods.Card].IsVisible.WaitTo.BeTrue() .PaymentMethods[x => x.Name == PaymentMethods.Card].Click() .PaymentMethods[x => x.Name == PaymentMethods.Card].PaymentFrame.SwitchTo <PayexCardFramePage>(); if (paymentframePage.CardTypeSelector.Exists()) { paymentframePage.CardTypeSelector.Check(); } return(paymentframePage); } }
protected OrdersPage GoToOrdersPage(Product[] products, PayexInfo payexInfo, Checkout.Option checkout = Checkout.Option.Anonymous) { ThankYouPage page = null; switch (payexInfo) { case PayexCardInfo cardInfo: page = PayWithPayexCard(products, cardInfo, checkout); break; case PayexSwishInfo swishInfo: page = PayWithPayexSwish(products, swishInfo, checkout); break; case PayexInvoiceInfo invoiceInfo: page = PayWithPayexInvoice(products, invoiceInfo, checkout); break; case PayexTrustlyInfo trustlyInfo: page = PayWithPayexTrustly(products, trustlyInfo, checkout); break; } return(page? .ThankYou.IsVisible.WaitTo.Within(120).BeTrue() .Header.Orders.ClickAndGo()); }
protected ThankYouPage GoToThankYouPage(Product[] products, Checkout.Option checkout = Checkout.Option.Identification, Entity.Option entity = Entity.Option.Private, PaymentMethods.Option paymentMethod = PaymentMethods.Option.Card) { var page = GoToSveaPaymentFrame(products); try { page.IdentifyEntity(checkout, entity); } catch (StaleElementReferenceException) { page.RefreshPage() .SwitchToFrame <SveaPaymentFramePage>(By.Id("svea-checkout-iframe")) .IdentifyEntity(checkout, entity); } page.Pay(checkout, entity, paymentMethod, _amount); try { return(page .PageUrl.Should.Within(TimeSpan.FromSeconds(60)).Contain("thankyou") .SwitchToRoot <ThankYouPage>() .ThankYou.IsVisible.WaitTo.BeTrue()); } catch (StaleElementReferenceException) { return(Go.To <ThankYouPage>()); } }
public static SveaPaymentFramePage Pay(this SveaPaymentFramePage page, Checkout.Option checkout = Checkout.Option.Identification, Entity.Option entity = Entity.Option.Private, PaymentMethods.Option paymentMethod = PaymentMethods.Option.Card, string amount = null) { page .PaymentMethods.TotalAmount.IsVisible.WaitTo.BeTrue() .PaymentMethods.TotalAmount.Should.ContainAmount(amount); if (entity == Entity.Option.Company && checkout == Checkout.Option.Identification) { page.PaymentMethods.Reference.Set(TestDataService.Reference); } switch (paymentMethod) { default: case PaymentMethods.Option.Card: return(page.PayWithCard()); case PaymentMethods.Option.DirektBank: return(page.PayWithDirektBank()); case PaymentMethods.Option.Invoice: return(page.PayWithInvoice()); case PaymentMethods.Option.Trustly: return(page.PayWithTrustly(checkout)); case PaymentMethods.Option.PaymentPlan: return(page.PayWithPaymentPlan()); case PaymentMethods.Option.AccountCredit: return(page.PayWithAccount()); case PaymentMethods.Option.BlackFriday: return(page.PayWithBlackFriday()); case PaymentMethods.Option.Swish: return(page.PayWithSwish()); } }
public static SveaPaymentFramePage IdentifyEntity(this SveaPaymentFramePage page, Checkout.Option checkout = Checkout.Option.Identification, Entity.Option entity = Entity.Option.Private) { page.Entity.IsVisible.WaitTo.BeTrue(); switch (entity) { default: case Entity.Option.Private: switch (checkout) { default: case Checkout.Option.Identification: return(page.ProceedWithPrivateIdentification().PaymentMethods.IsVisible.WaitTo.BeTrue()); case Checkout.Option.Anonymous: return(page.ProceedWithPrivateAnonymous().PaymentMethods.IsVisible.WaitTo.BeTrue()); } case Entity.Option.Company: switch (checkout) { default: case Checkout.Option.Identification: return(page.ProceedWithCompanyIdentification().PaymentMethods.IsVisible.WaitTo.BeTrue()); case Checkout.Option.Anonymous: return(page.ProceedWithCompanyAnonymous().PaymentMethods.IsVisible.WaitTo.BeTrue()); } } }
protected PayexInvoiceFramePage GoToPayexInvoicePaymentFrame(Product[] products, Checkout.Option checkout = Checkout.Option.Anonymous) { return(checkout switch { Checkout.Option.LocalPaymentMenu => GoToLocalPaymentPage(products) .Invoice.IsVisible.WaitTo.BeTrue() .Invoice.Click() .PaymentFrame.SwitchTo <PayexInvoiceFramePage>(), _ => GoToPaymentFramePage(products, checkout) .PaymentMethods[x => x.Name == PaymentMethods.Invoice].IsVisible.WaitTo.BeTrue() .PaymentMethods[x => x.Name == PaymentMethods.Invoice].Click() .PaymentMethods[x => x.Name == PaymentMethods.Invoice].PaymentFrame.SwitchTo <PayexInvoiceFramePage>() });
protected OrdersPage GoToOrdersPage(Product[] products, Checkout.Option checkout = Checkout.Option.Identification, Entity.Option entity = Entity.Option.Private, PaymentMethods.Option paymentMethod = PaymentMethods.Option.Card) { return(GoToThankYouPage(products, checkout, entity, paymentMethod) .RefreshPageUntil(x => x.Header.Orders.IsVisible.Value == true, timeout: 25, retryInterval: 3) .Header.Orders.ClickAndGo()); }
public static SveaPaymentFramePage PayWithTrustly(this SveaPaymentFramePage page, Checkout.Option checkout) { return(page .PaymentMethods.Trustly.IsVisible.WaitTo.BeTrue() .PaymentMethods.Trustly.Click() .Submit.ClickAndGo <TrustlyPaymentPage>() .Banks[0].IsVisible.WaitTo.BeTrue() .Banks[0].Click() .Next.Click() .Do(x => { if (checkout == Checkout.Option.Anonymous) { x.PersonalNumber.Set(TestDataService.PersonalNumber); } }) .SecurityCodeOption.Click() .Next.Click() .MessageCode.StoreValue(out string code) .Code.Set(code) .Next.Click() .AccountOptions.IsVisible.WaitTo.Within(60).BeTrue() .Next.Click() .MessageCode.StoreValue(out code) .Code.Set(code) .Next.Click() .SwitchToRoot <SveaPaymentFramePage>()); }