Pages Package

Under the pages package we need to create class files for respective app screens and define variables and assign locator values of each MobileElement to that variables.

Now we need to create methods to perform actions on the respective MobileElements.

In this ContactUsFormPage class we have defined all the locator values of contact form and created all the methods which perform actions such as clicking on the button , entering the text and verifying whether text is displayed or not.


Contact Us Form

ContactUsFormPage.py

from AppiumFrameWork.base.BasePage import BasePage
import AppiumFrameWork.utilities.CustomLogger as cl


class ContactForm(BasePage):

    def __init__(self, driver):
        super().__init__(driver)
        self.driver = driver

    # Locators values in Contact us form
    _contactFromButton = "com.skill2lead.appiumdemo:id/ContactUs"  # id
    _pagetitle = "Contact Us form"  # text
    _enterName = "Enter Name"  # text
    _enterEmail = "Enter Email"  # text
    _enterAddress = "Enter Address"  # text
    _enterMobileNumber = "4"  # index number
    _submitButton = "SUBMIT"  # text

    def clickContactFormButton(self):
        self.clickElement(self._contactFromButton, "id")
        cl.allureLogs("Clicked on Contact us From Button")

    def verifyContactPage(self):
        element = self.isDisplayed(self._pagetitle, "text")
        assert element == True
        cl.allureLogs("Contact Us Form page opened")

    def enterName(self):
        self.sendText("Code2Lead", self._enterName, "text")
        cl.allureLogs("Entered Name")

    def enterEmail(self):
        self.sendText("abc@gmail.com", self._enterEmail, "text")
        cl.allureLogs("Entered Email")

    def enterAddress(self):
        self.sendText("India", self._enterAddress, "text")
        cl.allureLogs("Entered Address")

    def enterMNumber(self):
        self.sendText("987654210", self._enterMobileNumber, "index")
        cl.allureLogs("Entered Mobile Number")

    def clickSubmitButton(self):
        self.clickElement(self._submitButton, "text")
        cl.allureLogs("Clicked on Submit button")



In this LoginPage class we have defined all the locator values of LoginPage and created all the methods which perform actions such as clicking on the button , entering the text and verifying whether text is displayed or not.


Login Page

LoginPage.py

from AppiumFrameWork.base.BasePage import BasePage
import AppiumFrameWork.utilities.CustomLogger as cl


class LoginPageTest(BasePage):

    def __init__(self, driver):
        super().__init__(driver)
        self.driver = driver

    # Locators values in Contact us form
    _loginbutton = "com.skill2lead.appiumdemo:id/Login"  # id
    _enterEmail = "3"  # index
    _enterPassword = "Enter Password"  # text
    _clickloginButton = "com.skill2lead.appiumdemo:id/Btn3"  # id
    _wrongCredentials = "Wrong Credentials"  # text
    _pageTitle = "Enter Admin"  # text
    _enterText = "com.skill2lead.appiumdemo:id/Edt_admin"  # id
    _submitButton = "SUBMIT"  # text

    def clickLoginBotton(self):
        self.clickElement(self._loginbutton, "id")
        cl.allureLogs("Click on Login Button")

    def enterEmail(self):
        self.sendText("admin@gmail.com", self._enterEmail, "index")
        cl.allureLogs("Entered email id")

    def enterPassword(self):
        self.sendText("admin123", self._enterPassword, "text")
        cl.allureLogs("Entered Password")

    def enterPassword2(self):
        self.sendText("admin12344", self._enterPassword, "text")
        cl.allureLogs("Entered Password")

    def clickOnLoginB(self):
        self.clickElement(self._clickloginButton, "id")
        cl.allureLogs("Clicked on Login Button in Login Screen")

    def verifyAdminScreen(self):
        adminScreen = self.isDisplayed(self._pageTitle, "text")
        assert adminScreen == True
        cl.allureLogs("Opened Admin Screen")

    def enterText(self):
        self.sendText("Code2Lead", self._enterText, "id")
        cl.allureLogs("Entered Text")

    def clickOnSubmit(self):
        self.clickElement(self._submitButton, "text")
        cl.allureLogs("Clicked on Submit Button")