def classSetup(self, getWebdriver): log = cl.customLogger(logging.DEBUG) self.loginPage = LoginPage(self.driver) self.basePage = BasePage(self.driver) self.mainMenu = MainMenuPage(self.driver) self.util = Util() self.testStatus = TestStatus(self.driver)
def __init__(self, driver): """ Inits BaseView class """ super().__init__(driver) self.driver = driver self.util = Util()
def __init__(self, driver): super().__init__(driver) self.driver = driver self.util = Util() self.wds = WebDriverSetup(driver) self.main_window = "" self.popup_window = ""
def classSetup(self, getWebdriver): log = cl.customLogger(logging.DEBUG) self.loginPage = LoginPage(self.driver) self.mainPage = MainMenuPage(self.driver) self.registerPage = RegistrationPage(self.driver) self.util = Util() self.testStatus = TestStatus(self.driver)
def __init__(self, driver): super().__init__(driver) self.deal = DealList(self.driver) self.dealdetail = DealDetailScreenPages(self.driver) self.release = ReleasePage(self.driver) self.ut = Util() self.driver = driver
def __init__(self, driver): ''' inits BasePage class returns None ''' super(BasePage, self).__init__(driver) self.driver = driver self.util = Util()
def __init__(self, driver): """ Inits BasePage Class :param driver: """ super(BasePage, self).__init__(driver) self.driver = driver self.util = Util()
def __init__(self, driver): """ Initialises the BasePage class :param driver: The webdriver instance being used """ super(BasePage, self).__init__(driver) self.driver = driver self.util = Util()
def Home(self): time.sleep(15) self.ut = Util() name = self.ut.getUniqueName(10) self.log.info(name) self.fullpage_screenshot(name + 'home.png') time.sleep(5) self.webScroll(direction='up') self.webScroll(direction='up')
def __init__(self, driver): """ Inits BasePage class Returns: None """ super(BaseHome, self).__init__(driver) self.driver = driver self.util = Util()
def __init__(self, driver): """ Base page inherites from the selenium driver which takes care of all the operations related to selenium driver So further we can just inherit this Base page into all our prages so we can have both the functionality :param driver: """ super().__init__(driver) self.driver = driver self.util = Util() # Creation of util object inorder to use utility functions anywhere in classes which is extending this class ex:any pages class
def SearchDeal(self): time.sleep(2) self.ut = Util() time.sleep(2) deal_name = self.ut.getUniqueName(4) self.EnterDeal(deal_name) time.sleep(3) self.elementClick(self.select_deal) time.sleep(10)
def __int__(self, driver): # """ # :Inits BasePage class # :return # None # """ super(BasePage, self).__init__(driver) self.driver = driver self.util = Util()
def __init__(self, driver): super().__init__(driver) self.deal = DealList(self.driver) self.dealdetail = DealDetailScreenPages(self.driver) self.unrelease = UnReleasePages(self.driver) self.release = ReleasePage(self.driver) self.broker = BrokerPages(self.driver) self.landlord = LandlordPages(self.driver) self.ut = Util() self.driver = driver
def __init__(self, driver): """ Inits BasePage class Returns: None """ SeleniumDriver.__init__(self, driver) self.driver = driver self.util = Util()
def __init__(self, driver): """ Inits BasePage class Returns: None """ super(BasePage, self).__init__(driver) self.driver = driver # instance of util class self.util = Util()
def __init__(self, driver): """ Inits BasePage class Returns: None """ super(BasePage, self).__init__(driver) # sends driver instance to BasePage class self.driver = driver self.util = Util()
def __init__(self, driver): """ Inits BasePage class returns: None :param driver: """ super(BasePage, self).__init__(driver) self.driver = driver self.util = Util()
def __init__(self, driver): self.driver = driver self.timeout = 5 self.wait = WebDriverWait(self.driver, self.timeout) self.locDict = { 'id': By.ID, 'link text': By.LINK_TEXT, 'partial link text': By.PARTIAL_LINK_TEXT, 'css': By.CSS_SELECTOR } self.util = Util()
def __init__(self, driver): """ Inits BasePage class Returns: None """ super(BasePage, self).__init__(driver) self.driver = driver self.util = Util() self.stat = Status(driver) self.nav = Navigation(driver)
def __init__(self, driver): """ Init BasePage class Returns: None """ super(BasePage, self).__init__(driver) self.driver = driver self.util = Util() self.ts = Status(self.driver)
class MainPage(BasePage): log = cl.customLogger(logging.DEBUG) util = Util() def __init__(self, driver): super().__init__(driver) self.driver = driver #locators _compose_main = "//div[@class='aic']/div/div" #xpath _send_to = ":89" #ID _subject_email = "subjectbox" #name _body_email = ':8w' _send_email_button = ":7j" def clickComposeMainButton(self): self.elementClick(self._compose_main, locatorType="xpath") #Link text def clickSendToEmail(self): self.elementClick(self._send_to) def enterSendToEmail(self, sendtoemail): self.sendKeys(sendtoemail, self._send_to) def enterSubjectToEmail(self, subject): self.sendKeys(subject, self._subject_email, locatorType="name") def enterEmailBody(self, emaildata): self.sendKeys(emaildata, self._body_email) def clickSendEmailButton(self): self.elementClick(self._send_email_button) def SendAnEmail( self, sendtoemail, subject, emaildata, ): self.clickComposeMainButton() time.sleep(2) self.clickSendToEmail() time.sleep(1) self.enterSendToEmail(sendtoemail) time.sleep(1) self.enterSubjectToEmail(subject) time.sleep(1) self.enterEmailBody(emaildata) time.sleep(1) self.clickSendEmailButton() self.util.sleep(2, "wait")
def __init__(self): """ Inits CheckPoint class Required Parameters: None Optional Parameters: None Returns: None """ super(CheckPoint, self).__init__() self.statusMap = {} self.util = Util() self.log = cl.customLogger()
def __init__(self, driver): """ Inits BasePage class Required Parameters: driver: WebDriver Object Optional Parameters: None Returns: None """ super(BasePage, self).__init__(driver) self._validate_page(driver) self.driver = driver self.util = Util() self.bkend = BEConnection()
class LoginPage(BasePage): log = cl.customLogger(logging.DEBUG) util = Util() def __init__(self, driver): super().__init__(driver) self.driver = driver # Locators _sign_in_button_home = ".gmail-nav__nav-link.gmail-nav__nav-link__sign-in" #CSS _email_input_sign_in = "Email" #ID _email_input_sign_in_1 = "identifierId" # ID _next_after_email_input = "next" # ID _next_after_email_input_1 = "identifierNext" # ID _password_input_sign_in = "Passwd" #ID _password_input_sign_in_1 = "//div[@id='password']//div/input" # Xpath _final_sing_in = "signIn" #ID _next_after_password_input = "passwordNext" _compose_main = "//div[@class='aic']/div/div" #xpath _send_to = ":89" #ID def ClickSignInHome(self): self.elementClick(self._sign_in_button_home, locatorType="css") def isEmailElementIsPresent(self): result = self.isElementPresent(self._email_input_sign_in) return result def InputEmailSignIn(self, Email): self.sendKeys( Email, self._email_input_sign_in ) #do not have to specify locatorType since ID is default def InputEmailSignIn1(self, Email): self.sendKeys(Email, self._email_input_sign_in_1) def clickNextAfterEmail(self): self.elementClick(self._next_after_email_input) def clickNextAfterEmail1(self): self.elementClick(self._next_after_email_input_1) def InputPasswordSignIn(self, password): self.sendKeys(password, self._password_input_sign_in) def SelectElementPasswordInput(self): self.elementClick(self._password_input_sign_in_1, locatorType="xpath") def InputPasswordSignIn1(self, password): self.sendKeys(password, self._password_input_sign_in_1, locatorType="xpath") def clickFinalSignIn(self): self.elementClick(self._final_sing_in) def clickNextAfterPassword(self): self.elementClick(self._next_after_password_input) def login_flow(self, email, password): self.ClickSignInHome() time.sleep(1) result1 = self.isEmailElementIsPresent() if result1 == True: self.InputEmailSignIn(email) self.clickNextAfterEmail() time.sleep(1) self.InputPasswordSignIn(password) time.sleep(1) self.clickFinalSignIn() self.util.sleep(2, "wait before next test run") else: self.InputEmailSignIn1(email) self.clickNextAfterEmail1() time.sleep(1) self.SelectElementPasswordInput() time.sleep(1) self.InputPasswordSignIn1(password) self.clickNextAfterPassword() self.util.sleep(2, 'wait before next test run')
class RegistrationPage(BasePage): log = cl.customLogger(logging.DEBUG) util = Util() def __init__(self, driver): super().__init__(driver) self.driver = driver ### Locators ### # Inputs _emailField = "//input[@name='email']" _registrationTypeDropDown = "//select[@name='roles']" _password1Field = "//input[@name='password']" _password2Field = "//input[@name='retyped_password']" _companyNameField = "//input[@name='company.name']" _taxNumField = "//input[@name='company.tax_number']" _postCodeField = "//input[@name='company.zip_code']" _cityField = "//input[@name='company.city']" _streetField = "//input[@name='company.street']" _fullNameField = "//input[@name='name']" _phoneNumberField = "//input[@name='phone_number']" _contact_email = "//input[@name='contact_email']" # Buttons _registrationBtn = "//button[@type='submit']" _loginPageBtn = "//a[@href='/login']" _aszfBtn = "//button[@class='toggle-btn__input-label']" # Alerts _registrationSuccessfulAlert = "//p[contains(text(), 'Sikeres regisztráció!')]" ### Actions ### def fillRegistrationForm(self, email, regType, fullName, phone, ps1, ps2, companyName, taxNum, postCode, city, street, contactEmail): self.sendKeys(email, self._emailField) self.selectFromDropdownByIndex(regType, self._registrationTypeDropDown, locatorType="xpath") self.sendKeys(ps1, self._password1Field) self.sendKeys(ps2, self._password2Field) self.sendKeys(companyName, self._companyNameField) self.sendKeys(taxNum, self._taxNumField) self.sendKeys(postCode, self._postCodeField) self.sendKeys(city, self._cityField) self.sendKeys(street, self._streetField) self.sendKeys(fullName, self._fullNameField) self.sendKeys(phone, self._phoneNumberField) self.sendKeys(contactEmail, self._contact_email) def fillInputField(self, elementLocator, dataToSend): self.sendKeys(data=dataToSend, locator=elementLocator, locatorType="xpath") def clickRegistrationBtn(self): self.elementClick(self._registrationBtn) def clickAszfBtn(self): self.elementClick(self._aszfBtn) def clickLoginPageBtn(self): self.elementClick(self._loginPageBtn) def isRegisterBtnEnabled(self): isRegisterBtnEnabled = self.isElementEnabled(self._registrationBtn) return isRegisterBtnEnabled def registrationSuccessfulCheck(self): isRegistrationSuccessfulAlertAppear = self.isElementPresent( self._registrationSuccessfulAlert) return isRegistrationSuccessfulAlertAppear def isRegisterBtnPresent(self): isRegisterBtnPresent = self.isElementPresent(self._registrationBtn) return isRegisterBtnPresent def isAlertVisible(self, alertOwnerElementLocator, alertMsg): """ :param alertOwnerElementLocator: Locator with the result message belong :param alertMsg: Alert message to check :return: True if alert is visible ; False if alert is not visible """ self.log.debug("alertOwnerElementLocator from file is :: " + str(alertOwnerElementLocator)) self.log.debug("Alert msg from file is :: " + alertMsg) if self.isElementNotDisplayed( alertOwnerElementLocator + "//parent::div//span[contains(text(), '" + alertMsg + "')]") == True: return False else: isAlertVisible = self.isElementPresent( alertOwnerElementLocator + "//parent::div//span[contains(text(), '" + alertMsg + "')]") self.log.info("Element path is: //input[@name='" + alertOwnerElementLocator + "']//parent::div//span[contains(text(), '" + alertMsg + "')]") self.log.debug("isAlertPresent :: " + str(isAlertVisible)) return isAlertVisible def isAlertNotVisible(self, alertOwnerElementLocator, alertMsg): if self.isElementNotDisplayed(alertOwnerElementLocator) is True: self.log.info("Element is NOT displayed") else: self.log.info("Element is displayed")
def __init__(self, driver): super(BasePage, self).__init__(driver) self.driver = driver self.util = Util()
def __init__(self, driver): self.driver = driver self.util = Util()
def __init__(self, driver): super().__init__(driver) self.driver = driver self.util = Util()
def run_All_testCase(self, testCaseJson, baseURL): wdf = WebDriverFactory(self.driver) if baseURL == '': self.log.error("Base URL not Inserted") self.driver = wdf.getWebDriverInstance(baseURL=baseURL) self.stat = Status(self.driver) self.util = Util() for test in testCaseJson: self.element = test['FindElement'] self.Action = test['ActionCommand'] self.elementType = test['FindElementType'] self.Data = test['ActionParameters'] self.waitAfterCmd = int(float(test['WaitAfterCommand'])) self.timeOut = int(float(test['Wait-Timeout'])) if self.Action == "login": email = self.Data.strip().split(",")[0] password = self.Data.strip().split(",")[1] email_locator = self.element.strip().split(",")[0] password_locator = self.element.strip().split(",")[1] self.sendKeys(email, email_locator, self.elementType) time.sleep(self.waitAfterCmd) self.sendKeys(password, password_locator, self.elementType) self.waitForElement(self.element, self.elementType, self.timeOut) elif self.Action == "isElementPresent": result = self.isElementPresent(self.element, self.elementType) self.stat.markFinal("Test" + self.element, result, "") self.reports.update({test['ActionNo']: result}) elif self.Action == "elementClick": self.elementClick(self.element, self.elementType) time.sleep(self.waitAfterCmd) elif self.Action == "verifyTextContains": exceptedText = self.getText(self.element, self.elementType) result = self.util.verifyTextContains(self.Data, exceptedText) self.stat.markFinal("Test" + self.element, result, "Text Contains") self.reports.update({test['ActionNo']: result}) elif self.Action == "sendKeys": self.sendKeys(self.Data, self.element, self.elementType) time.sleep(self.waitAfterCmd) elif self.Action == "waitForElement": self.waitForElement(self.element, self.elementType, self.timeOut) elif self.Action == "isElementPresent": result = self.isElementPresent(self.element, self.elementType) self.stat.markFinal("Test" + self.element, result, "") self.reports.update({test['ActionNo']: result}) elif self.Action == "clearField": self.clearField(self.element, self.elementType) time.sleep(self.waitAfterCmd) elif self.Action == "getTitle": result = self.getTitle() print(result) elif self.Action == "isElementDisplayed": self.isElementDisplayed(self.element, self.elementType) time.sleep(self.waitAfterCmd) elif self.Action == "scrollIntoView": self.scrollIntoView(self.element, self.elementType) time.sleep(self.waitAfterCmd) elif self.Action == "mouseHover": self.mouseHover(self.element, self.elementType) self.waitForElement(self.element, self.elementType, self.timeOut) elif self.Action == "mouseClick": self.mouseClick(self.element, self.elementType) time.sleep(self.waitAfterCmd) elif self.Action == "webScroll": self.webScroll(self.Data) time.sleep(self.waitAfterCmd) self.driver.quit()