diff --git a/src/Samples/Sample.AspNetCore.SystemTests/Test/Helpers/PaymentHelper.cs b/src/Samples/Sample.AspNetCore.SystemTests/Test/Helpers/PaymentHelper.cs index f488aa3d..40e9bee1 100644 --- a/src/Samples/Sample.AspNetCore.SystemTests/Test/Helpers/PaymentHelper.cs +++ b/src/Samples/Sample.AspNetCore.SystemTests/Test/Helpers/PaymentHelper.cs @@ -1,4 +1,5 @@ using Atata; +using OpenQA.Selenium; using Sample.AspNetCore.SystemTests.PageObjectModels; using Sample.AspNetCore.SystemTests.PageObjectModels.Payment; using Sample.AspNetCore.SystemTests.Services; @@ -8,24 +9,49 @@ namespace Sample.AspNetCore.SystemTests.Test.Helpers { public static class PaymentHelper { - public static SveaPaymentFramePage PayWithCard(this SveaPaymentFramePage page) + public static SveaPaymentFramePage PayWithCard(this SveaPaymentFramePage page, bool switchFrame = false) { return page .PaymentMethods.Card.IsVisible.WaitTo.BeTrue() .PaymentMethods.Card.Click() - .Submit.ClickAndGo() - .CardNumber.IsVisible.WaitTo.BeTrue() .Do(x => { - if (x.DebitCard.Exists(new SearchOptions { IsSafely = true, Timeout = TimeSpan.FromSeconds(1) })) + if (!switchFrame) { - x.DebitCard.Click(); + x + .Submit.ClickAndGo() + .CardNumber.IsVisible.WaitTo.BeTrue() + .Do(x => + { + if (x.DebitCard.Exists(new SearchOptions { IsSafely = true, Timeout = TimeSpan.FromSeconds(1) })) + { + x.DebitCard.Click(); + } + }) + .CardNumber.Set(TestDataService.CreditCardNumber) + .Expiry.Set(TestDataService.CreditCardExpiratioDate) + .Cvc.Set(TestDataService.CreditCardCvc) + .Submit.Click(); + } + else + { + x + .Submit.Click() + .SwitchToFrame(By.TagName("iframe")) + .CardNumber.IsVisible.WaitTo.BeTrue() + .Do(x => + { + if (x.DebitCard.Exists(new SearchOptions { IsSafely = true, Timeout = TimeSpan.FromSeconds(1) })) + { + x.DebitCard.Click(); + } + }) + .CardNumber.Set(TestDataService.CreditCardNumber) + .Expiry.Set(TestDataService.CreditCardExpiratioDate) + .Cvc.Set(TestDataService.CreditCardCvc) + .Submit.Click(); } }) - .CardNumber.Set(TestDataService.CreditCardNumber) - .Expiry.Set(TestDataService.CreditCardExpiratioDate) - .Cvc.Set(TestDataService.CreditCardCvc) - .Submit.Click() .SwitchToRoot(); } @@ -52,7 +78,7 @@ public static SveaPaymentFramePage PayWithTrustly(this SveaPaymentFramePage page .PaymentMethods.Trustly.IsVisible.WaitTo.BeTrue() .PaymentMethods.Trustly.Click() .Submit.ClickAndGo() - .Banks[0].IsVisible.WaitTo.BeTrue() + .Banks[0].IsVisible.WaitTo.Within(15).BeTrue() .Banks[0].Click() .Next.IsVisible.WaitTo.Within(60).BeTrue() .Next.Click() diff --git a/src/Samples/Sample.AspNetCore.SystemTests/Test/Helpers/SveaPaymentFrameHelper.cs b/src/Samples/Sample.AspNetCore.SystemTests/Test/Helpers/SveaPaymentFrameHelper.cs index a99033c4..7d95f8d4 100644 --- a/src/Samples/Sample.AspNetCore.SystemTests/Test/Helpers/SveaPaymentFrameHelper.cs +++ b/src/Samples/Sample.AspNetCore.SystemTests/Test/Helpers/SveaPaymentFrameHelper.cs @@ -47,7 +47,7 @@ public static SveaPaymentFramePage IdentifyEntity(this SveaPaymentFramePage page } } - 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) + 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, bool switchFrame = false) { switch (paymentMethod) { @@ -102,7 +102,7 @@ public static SveaPaymentFramePage Pay(this SveaPaymentFramePage page, Checkout. { default: case PaymentMethods.Option.Card: - return page.PayWithCard(); + return page.PayWithCard(switchFrame); case PaymentMethods.Option.DirektBank: return page.PayWithDirektBank(); diff --git a/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/Validation/CountriesCheckoutTests.cs b/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/Validation/CountriesCheckoutTests.cs index c9edcb42..74f4d578 100644 --- a/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/Validation/CountriesCheckoutTests.cs +++ b/src/Samples/Sample.AspNetCore.SystemTests/Test/PaymentTests/Validation/CountriesCheckoutTests.cs @@ -59,7 +59,7 @@ public void ChangeCountryAtCheckout(Product[] products) .International.ZipCode.Set(TestDataService.SwedishZipCode) .International.City.Set(TestDataService.SwedishCity) .Submit.Click() - .Pay(Checkout.Option.Anonymous, Entity.Option.Private, PaymentMethods.Option.Card, null) + .Pay(Checkout.Option.Anonymous, Entity.Option.Private, PaymentMethods.Option.Card, null, switchFrame: true) .PageUrl.Should.Within(TimeSpan.FromSeconds(60)).Contain("thankyou") .SwitchToRoot() .ThankYou.IsVisible.WaitTo.BeTrue();