Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions Pages/AccountSummaryPage.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using OpenQA.Selenium;

namespace CSharpSeleniumFramework.Pages{

public class AccountSummaryPage : BasePage{

public AccountSummaryPage(IWebDriver driver) : base(driver){

}

}

}
7 changes: 6 additions & 1 deletion Pages/OnlineBankingPage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,16 @@ public class OnlineBankingPage : BasePage

// Selectors
private By _h1Header = By.TagName("h1");
private By _payBillsLink = By.Id("pay_bills_link");

// Constructor
public OnlineBankingPage(IWebDriver driver) : base(driver){}
public OnlineBankingPage(IWebDriver driver) : base(driver) { }

// Methods
public void ClickPayBillsLink()
{
ClickElement(_payBillsLink);
}
public void CheckOnlineBankingPageHeader()
{
string h1Header = _driver.FindElement(_h1Header).Text;
Expand Down
66 changes: 66 additions & 0 deletions Pages/PayBillsPage.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.BiDi.Modules.Input;
using OpenQA.Selenium.Support.UI;

namespace CSharpSeleniumFramework.Pages

{
public class PayBillsPage : BasePage
{
// Selectors
private By _payButton = By.Id("pay_saved_payees");
private By _payeeField = By.Id("sp_payee");
private By _accountField = By.Id("sp_account");
private By _amountfield = By.Id("sp_amount");
private By _dateField = By.Id("sp_date");
private By _descriptionField = By.Id("sp_description");
private By _alertTitleLocator = By.CssSelector("#alert_content span");

// Constructor
public PayBillsPage(IWebDriver driver) : base(driver) { }

// Methods
public void ClickPayButton()
{
ClickElement(_payButton);
}

public void SelectPayee(string payee)
{
// Explicit wait to check if the element is visible
_wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(_payeeField));

new SelectElement(_driver.FindElement(_payeeField)).SelectByValue(payee);
}

public void SelectAccount(string account)
{
new SelectElement(_driver.FindElement(_accountField)).SelectByValue(account);
}

public void EnterAmount(string amount)
{
SendText(_amountfield, true, amount);
}

public void EnterDate(string date)
{
SendText(_dateField, true, date);
_driver.FindElement(_dateField).SendKeys(Keys.Return);
}

public void EnterDescription(string description)
{
SendText(_descriptionField, true, description);
}

public void CheckAlertTitleMatchesExpectedAmount(string amount)
{
WebDriverWait wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(10));
IWebElement alertSpan = wait.Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(_alertTitleLocator));
string alertTitleText = alertSpan.GetAttribute("title");
Assert.That(alertTitleText, Is.EqualTo($"$ {amount} payed to payee apple"), "The alert message did not match the expected string amount");
}
}
}
2 changes: 2 additions & 0 deletions Tests/BaseTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public class BaseTest
protected OnlineBankingPage _onlineBankingPage;
protected TransferFundsPage _transferFundsPage;
protected AccountActivityPage _accountActivityPage;
protected PayBillsPage _payBillsPage;

[SetUp]
public virtual void Setup()
Expand All @@ -28,6 +29,7 @@ public virtual void Setup()
_onlineBankingPage = new OnlineBankingPage(_driver);
_transferFundsPage = new TransferFundsPage(_driver);
_accountActivityPage = new AccountActivityPage(_driver);
_payBillsPage = new PayBillsPage(_driver);
_driver.Manage().Window.Maximize();

//Visit the application
Expand Down
46 changes: 46 additions & 0 deletions Tests/PayBillsTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using Allure.NUnit;
using Allure.NUnit.Attributes;
using NUnit.Framework;

namespace CSharpSeleniumFramework.Tests
{
[TestFixture]
[AllureNUnit]
public class PayBillsTest : BaseTest
{
[SetUp]
public override void Setup()
{
base.Setup();
// Login
string username = "username";
string password = "password";
_homePage.ClickSignInButton();
_loginPage.Login(username, password);
_loginPage.ByPassSSLCertIssue();
}

[Test]
[AllureFeature("Pay Bills")]
[AllureStory("Verify can make payment to a saved payee")]
public void PaySavedPayee()
{
string payee = "apple";
string account = "2";
string amount = "150.00";
string date = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
string description = "Mobile phone services";


_homePage.ClickOnlineBankingLink();
_onlineBankingPage.ClickPayBillsLink();
_payBillsPage.SelectPayee(payee);
_payBillsPage.SelectAccount(account);
_payBillsPage.EnterAmount(amount);
_payBillsPage.EnterDate(date);
_payBillsPage.EnterDescription(description);
_payBillsPage.ClickPayButton();
_payBillsPage.CheckAlertTitleMatchesExpectedAmount(amount);
}
}
}
Loading