def logintoapplication(self):
        log = Logger.getlogger()
        try:
            self.driver.get(PropertyManager.getconfigdata("basicurl"))
            self.driver.implicitly_wait(3)
            self.driver.maximize_window()
            credentials = ExcelUtils.readdata("Testdata.xlsx", "Credentials",
                                              2)
            userNames = ExcelUtils.getdata(credentials, "Username")
            passwords = ExcelUtils.getdata(credentials, "Password")
            WaitUtilities.waitforpagetitleis(self.driver,
                                             "Address Book - Sign In", 5)
            signinbtn = self.driver.find_element(*LoginPage.obj_signin)

            WaitUtilities.waitForElementVisible(self.driver,
                                                LoginPage.obj_signin, 5)
            signinbtn.click()
            username = self.driver.find_element(*LoginPage.obj_username)
            password = self.driver.find_element(*LoginPage.obj_password)
            loginbtn = self.driver.find_element(*LoginPage.obj_loginbtn)
            WaitUtilities.waitForElementVisible(self.driver,
                                                LoginPage.obj_username, 5)
            username.send_keys(userNames)
            password.send_keys(passwords)
            loginbtn.click()

            flag = WaitUtilities.waitforpagetitleis(self.driver,
                                                    "Address Book", 5)

            assert flag, "should be Login to Application.::Successfully Login to Application."

            log.info("Successfully Login to Application.")

        except Exception as e:
            log.error("Failed to Login to Application.", exc_info=True)
Esempio n. 2
0
    def logoutfromapplication(self):
        log = Logger.getlogger()
        try:
            logoutbtn = self.driver.find_element(*HomePage.obj_signout)
            logoutbtn.click()

            flag = WaitUtilities.waitforpagetitleis(self.driver,
                                                    "Address Book - Sign In",
                                                    5)

            if flag:
                Reporter.passed(
                    self.driver,
                    "should be Logout from Application.::Successfully Logout from Application."
                )
                log.info("Successfully Logout from Application.")
            else:
                assert False

        except AssertionError as e:
            Reporter.failed(
                self.driver,
                "should be Logout from Application.::Failed to Logout from Application."
            )
            log.error("Failed to Logout from Application.")

        except Exception as e:
            log.error("Exception Occurred", exc_info=True)
    def deleteAddressDetails(self):
        log = Logger.getlogger()
        try:
            deletebtn = self.driver.find_element(*AddressPage.obj_deletebtn)
            deletebtn.click()
            WaitUtilities.waitForAlertIsPresent(self.driver, 5)

            Alerts = self.driver.switch_to.alert
            Alerts.accept()
            WaitUtilities.waitForElementVisible(self.driver,
                                                AddressPage.obj_successmsg, 5)

            successmsg = self.driver.find_element(*AddressPage.obj_successmsg)

            actualmsg = successmsg.text

            if actualmsg == "Address was successfully destroyed.":
                Reporter.passed(
                    self.driver,
                    "Address should be successfully Deleted.::Address is successfully Deleted."
                )
                log.info("Address Details is Deleted successfully")
            else:
                assert False

        except AssertionError as e:
            Reporter.failed(
                self.driver,
                "Address should be Deleted.::Address is not Deleted.")
            log.info("Address Details is not deleted successfully")
        except Exception as e:
            log.error("Exception Occurred", exc_info=True)
    def verifyautosuggestioncheckboxselect(self, name):
        log = Logger.getlogger()
        try:
            AutoSuggest = self.driver.find_element(*AutomationPracticePage.obj_dynamicinput)
            AutoSuggest.clear()
            AutoSuggest.send_keys(name)
            WaitUtilities.waitForElementVisible(self.driver, (By.XPATH, "//ul[contains(@class,'ui-menu')]/li/div[text()='"+name+"']"), 5)
            AutoSuggestValue = self.driver.find_element_by_xpath("//ul[contains(@class,'ui-menu')]/li/div[text()='"+name+"']")
            AutoSuggestValue.click()
            log.info("Value is Entered in Auto Suggestion Input Box")

            select = Select(self.driver.find_element(*AutomationPracticePage.obj_dropdown))

            AllOptions = select.options

            for i in AllOptions:
                log.info(i.text)

            select.select_by_value("option3")

            CheckBoxes = self.driver.find_elements(*AutomationPracticePage.obj_checkbox)

            for checkbox in CheckBoxes:
                checkbox.click()
                log.info(checkbox.text)

            if not False:
                Reporter.passed(self.driver, "CheckBox should be selected::CheckBox Button is Selected")
            else:
                assert False
        except AssertionError as e:
            Reporter.failed(self.driver, "CheckBox should be selected::CheckBox is not selected.")
        except Exception as e:
            log.error("Exception Occurred", exc_info=True)
    def verifyalertshowhidetabledata(self):
        log = Logger.getlogger()
        try:
            AlertInputBox = self.driver.find_element(*AutomationPracticePage.obj_alertinputbox)

            AlertInputBox.clear()
            AlertInputBox.send_keys("Nagesh")

            AlertBtn = self.driver.find_element(*AutomationPracticePage.obj_alertbtn)

            AlertBtn.click()

            WaitUtilities.waitForAlertIsPresent(self.driver, 5)

            Alerts = self.driver.switch_to.alert

            log.info("Alert Text is "+Alerts.text+"")

            Alerts.accept()

            DisplayedElement = self.driver.find_element(*AutomationPracticePage.obj_dispelement)

            log.info("CSS Value "+DisplayedElement.value_of_css_property("font-size")+"")

            HideBtn = self.driver.find_element(*AutomationPracticePage.obj_hidebtn)

            HideBtn.click()

            log.info("Clicked on Hide Button")

            ShowBtn = self.driver.find_element(*AutomationPracticePage.obj_showbtn)

            ShowBtn.click()

            if DisplayedElement.is_displayed():
                Reporter.passed(self.driver, "InputBox should be Displayed when clicked on Show Button::InputBox is Displayed when clicked on Show Button")
            else:
                assert False

            log.info("Clicked on Show Button ")

            TableElement = self.driver.find_element(*AutomationPracticePage.obj_table)

            TableHeader = TableElement.find_elements_by_xpath("th")

            for i in TableHeader:
                log.info("Table header " + i.text)

            TableRow = self.driver.find_elements(*AutomationPracticePage.obj_tabledata)

            for j in TableRow:
                log.info("Table Row data " + j.text)
        except AssertionError as e:
            Reporter.failed(self.driver, "InputBox should be Displayed when clicked on Show Button:InputBox is not Displayed when clicked on Show Button.")
        except Exception as e:
            log.error("Exception Occurred", exc_info=True)
Esempio n. 6
0
def getconfigdata(propertyname):
    log = Logger.getlogger()
    try:
        configs = Properties()
        with open(path, 'rb') as config_file:
            configs.load(config_file)

        return configs.get(propertyname).data
    except Exception as e:
        log.exception("Exception Occurred", exc_info=True)
def getchromeoptions():
    log = Logger.getlogger()
    try:
        chrome_options = Options()
        chrome_options.add_experimental_option(
            "prefs", {"download.default_directory": "E:\Export"})
        #chrome_options.add_argument("--headless")
        chrome_options.add_argument("--start-maximized")
        chrome_options.add_argument('--disable-notifications')
        return chrome_options
    except Exception as e:
        log.exception("Exception Occurred", exc_info=True)
    def test_first(self):
        log = Logger.getlogger()
        driver = BrowserFactory.getdriver()
        driver.get(PropertyManager.getconfigdata("url"))
        log.info("-----------Navigating to URL " +
                 PropertyManager.getconfigdata("url") + "-------------")
        driver.implicitly_wait(3)
        log.info("implicitly Wait is set to 3 Sec")
        driver.maximize_window()
        log.info("-----------Window is Maximized.-------------")

        self.AutomationPracticePage_Object.verifyradiobtnisselectedornot()
def waitforpagetitleis(driver, title, timeout):
    flag = False
    log = Logger.getlogger()
    try:
        wait = WebDriverWait(driver, timeout)
        flag = wait.until(expected_conditions.title_is(title))
        log.info("-----------Page with Title "+title+" is opened.-------------")
        flag = True
    except Exception as e:
        log.error("----------Page with Title "+title+" is not opened.---------")

    return flag
def waitForWindowIsPresent(driver, timeout):
    flag = False
    log = Logger.getlogger()
    try:
        wait = WebDriverWait(driver, timeout)
        Element = wait.until(expected_conditions.number_of_windows_to_be(2))
        log.info("-----------New Window is Opened.-------------")
        flag = True
    except Exception as e:
        log.error("----------New Window is Not Opened.---------")

    return flag
def waitForAlertIsPresent(driver, timeout):
    flag = False
    log = Logger.getlogger()
    try:
        wait = WebDriverWait(driver, timeout)
        Element = wait.until(expected_conditions.alert_is_present())
        log.info("-----------Alert Popup is Visible.-------------")
        flag = True
    except Exception as e:
        log.error("----------Alert Popup is Not Visible.---------")

    return flag
def setup(request):
    try:
        log = Logger.getlogger()
        browser_name = request.config.getoption("browser_name")
        BrowserFactory.setdriver(browser_name)
        log.info(browser_name + " Browser is invoked.")
        BaseTest.init_page()
        yield
        BrowserFactory.getdriver().quit()
        log.info(browser_name + " Browser is Closed.")
    except Exception as e:
        log.error("Exception Occurred", exc_info=True)
    def test_menuselect(self):
        log = Logger.getlogger()
        driver = BrowserFactory.getdriver()
        driver.get(PropertyManager.getconfigdata("tooltipurl"))
        log.info("-----------Navigating to URL " +
                 PropertyManager.getconfigdata("tooltipurl") + "-------------")
        driver.implicitly_wait(3)
        log.info("implicitly Wait is set to 3 Sec")
        driver.maximize_window()
        log.info("-----------Window is Maximized.-------------")

        self.ToolTipTextPage_object.verifytooltiptext()
def waitForElementVisible(driver, element, timeout):
    flag = False
    log = Logger.getlogger()
    try:
        wait = WebDriverWait(driver, timeout)
        Element = wait.until(expected_conditions.visibility_of_element_located(element))
        if Element is not None:
            log.info("-----------Element is Visible.-------------")
            flag = True
    except Exception as e:
        log.error("----------Element is Not Visible.---------")

    return flag
def getfirefoxoptions():
    log = Logger.getlogger()
    try:
        firefox_options = firefox.options.Options()
        #firefox_options.add_argument('-headless')
        firefox_options.set_preference("browser.download.folderList", 2)
        firefox_options.set_preference(
            "browser.download.manager.showWhenStarting", False)
        firefox_options.set_preference("browser.download.dir", "E:\Export")
        firefox_options.set_preference(
            "browser.helperApps.neverAsk.saveToDisk",
            "application/octet-stream,application/vnd.ms-excel,image/jpeg")
        return firefox_options
    except Exception as e:
        log.exception("Exception Occurred", exc_info=True)
    def test_verifyaddress(self):
        log = Logger.getlogger()
        driver = BrowserFactory.getdriver()
        driver.get(PropertyManager.getconfigdata("basicurl"))
        log.info("-----------Navigating to URL " +
                 PropertyManager.getconfigdata("basicurl") + "-------------")
        driver.implicitly_wait(3)
        log.info("implicitly Wait is set to 3 Sec")
        driver.maximize_window()
        log.info("-----------Window is Maximized.-------------")

        self.LoginPage_object.logintoapplication()
        self.AddressPage_object.fillAddressDetails()
        self.AddressPage_object.verifyAddressDetails()
        self.AddressPage_object.deleteAddressDetails()
        self.Homepage_object.logoutfromapplication()
    def verifywindoframewswitchtooltip(self):
        log = Logger.getlogger()
        sflag = False
        try:
            parentwindowhanlde = self.driver.current_window_handle
            openwindowbutton = self.driver.find_element(*AutomationPracticePage.obj_openwindow)
            self.driver.execute_script("arguments[0].click();", openwindowbutton)
            windowhandles = set(self.driver.window_handles)
            WaitUtilities.waitForWindowIsPresent(self.driver, 10)
            for windowhandle in windowhandles:
                self.driver.switch_to.window(windowhandle)
                if self.driver.title == "QA Click Academy | Selenium,Jmeter,SoapUI,Appium,Database testing,QA Training Academy":
                    log.info("Switched to Child Window")
                    sflag = True
                    self.driver.close()
                    break

            self.driver.switch_to.window(parentwindowhanlde)
            log.info("Switched back to Parent Window")

            Reporter.info("Should be Switched to Child Window::Switched to Child Window Successfully.")

            self.driver.switch_to.frame("courses-iframe")
            log.info("Switched to Frame Successfully")
            homelink = self.driver.find_element(*AutomationPracticePage.obj_homelinkbtn)

            self.driver.execute_script("arguments[0].scrollIntoView(false);", homelink)

            self.driver.switch_to.parent_frame()

            log.info("Switched to Parent Frame Successfully")

            action = ActionChains(self.driver)

            mousehoverelement = self.driver.find_element(*AutomationPracticePage.obj_mousehover)

            action.move_to_element(mousehoverelement).click_and_hold(mousehoverelement).perform()

            WaitUtilities.waitForElementVisible(self.driver, AutomationPracticePage.obj_tooltiptext, 5)
            tooltiptexts = self.driver.find_elements(*AutomationPracticePage.obj_tooltiptext)

            for tooltipelement in tooltiptexts:
                log.info("Tooltip Text " + tooltipelement.text)
        except AssertionError as e:
            Reporter.failed(self.driver, "Should be Switched to Child Window::Not Switched to Child Window.")
        except Exception as e:
            log.error("Exception Occurred", exc_info=True)
    def logintoapplication(self):
        log = Logger.getlogger()
        try:

            credentials = ExcelUtils.readdata("Testdata.xlsx", "Credentials",
                                              2)

            userNames = ExcelUtils.getdata(credentials, "Username")
            passwords = ExcelUtils.getdata(credentials, "Password")

            WaitUtilities.waitforpagetitleis(self.driver,
                                             "Address Book - Sign In", 5)
            signinbtn = self.driver.find_element(*LoginPage.obj_signin)

            WaitUtilities.waitForElementVisible(self.driver,
                                                LoginPage.obj_signin, 5)
            signinbtn.click()
            username = self.driver.find_element(*LoginPage.obj_username)
            password = self.driver.find_element(*LoginPage.obj_password)
            loginbtn = self.driver.find_element(*LoginPage.obj_loginbtn)
            WaitUtilities.waitForElementVisible(self.driver,
                                                LoginPage.obj_username, 5)
            username.send_keys(userNames)
            password.send_keys(passwords)
            loginbtn.click()

            flag = WaitUtilities.waitforpagetitleis(self.driver,
                                                    "Address Book", 5)

            if flag:
                Reporter.passed(
                    self.driver,
                    "should be Login to Application.::Successfully Login to Application."
                )
                log.info("Successfully Login to Application.")
            else:
                assert False

        except AssertionError as e:
            Reporter.failed(
                self.driver,
                "should be Login to Application.::Failed to Login to Application."
            )
            log.error("Failed to Login to Application.")

        except Exception as e:
            log.error("Exception Occurred", exc_info=True)
    def verifyAddressDetails(self):
        log = Logger.getlogger()
        try:
            addressbtn = self.driver.find_element(*AddressPage.obj_addressbtn)
            addressbtn.click()

            WaitUtilities.waitForElementVisible(self.driver,
                                                AddressPage.obj_newaddressbtn,
                                                5)

            tablerow = self.driver.find_element(*AddressPage.obj_tablerow)

            tabledata = tablerow.find_elements_by_xpath("td")

            fname = tabledata[0].text
            lname = tabledata[1].text
            city = tabledata[2].text
            state = tabledata[3].text

            MyDict = {
                "First Name": fname,
                "Last Name": lname,
                "City": city,
                "State": state
            }

            ExcelUtils.writedata("Testdata.xlsx", "Address", 3, MyDict)

            if fname == "Nagesh":
                Reporter.passed(
                    self.driver,
                    "Address Details should be verified successfully.::Address Details is verified successfully."
                )
                log.info("Address Details is verified successfully")
            else:
                assert False

        except AssertionError as e:
            Reporter.failed(
                self.driver,
                "Address should be verified.::Address is not verified.")
            log.error("Address Details is not verified successfully")
        except Exception as e:
            log.error("Exception Occurred", exc_info=True)
def killbrowserdriver(browesrname):
    log = Logger.getlogger()
    if browesrname == "Chrome":
        driverprocess = "chromedriver.exe"
    elif browesrname == "Firefox":
        driverprocess = "firefox.exe"
    else:
        log.warn("Entered Wrong Browser name")

    try:
        code = os.system("taskkill /F /T /IM " + driverprocess)
        if code == 0:
            log.info("Driver process " + driverprocess +
                     " is killed successfully.")
        else:
            log.info("Driver process " + driverprocess + " is not exists.")

    except Exception as e:
        log.error("Exception Occurred", exc_info=True)
Esempio n. 21
0
def selenium_browser_setdriver(context):
    # -- SETUP-FIXTURE PART:
    logger = Logger.getlogger()
    browser_name = context.config.userdata.get('BrowserName')
    Utilities.killbrowserdriver(browser_name)
    if browser_name == "Chrome":
        logger.info(browser_name + " Browser option is selected")
        context.driver = webdriver.Chrome(
            executable_path=ChromeDriverManager().install(),
            options=OptionsManager.getchromeoptions())
    elif browser_name == "Firefox":
        logger.info(browser_name + " Browser option is selected")
        context.driver = webdriver.Firefox(
            executable_path=GeckoDriverManager().install(),
            options=OptionsManager.getfirefoxoptions())
    else:
        logger.info("Entered Wrong Browser name")

    yield context.driver
    def verifymenuselection(self):
        log = Logger.getlogger()
        sflag = False
        try:
            WaitUtilities.waitforpagetitleis(
                self.driver,
                "Free QA Automation Tools Tutorial for Beginners with Examples",
                5)
            tutorial = self.driver.find_element(
                *MenuSelectionPage.obj_tutorial)
            backendtesting = self.driver.find_element(
                *MenuSelectionPage.obj_backendtesting)
            restassured = self.driver.find_element(
                *MenuSelectionPage.obj_restassured)

            action = ActionChains(self.driver)

            action.move_to_element(tutorial).perform()
            WaitUtilities.waitForElementVisible(
                self.driver, MenuSelectionPage.obj_backendtesting, 5)
            action.move_to_element(backendtesting).click_and_hold().perform()
            WaitUtilities.waitForElementVisible(
                self.driver, MenuSelectionPage.obj_restassured, 5)
            action.move_to_element(restassured).click().perform()
            sflag = WaitUtilities.waitforpagetitleis(
                self.driver,
                "Rest Assured Tutorial for REST API Automation Testing", 5)

            if sflag:
                Reporter.passed(
                    self.driver,
                    "RestAssured Menu should be selected::RestAssured Menu is selected."
                )
            else:
                assert False

        except AssertionError as e:
            Reporter.failed(
                self.driver,
                "RestAssured Menu should be selected::RestAssured Menu is not selected."
            )
        except Exception as e:
            log.error("Exception Occurred", exc_info=True)
def setdriver(browser_name):
    try:
        log = Logger.getlogger()
        global driver
        Utilities.killbrowserdriver(browser_name)
        if browser_name == "Chrome":
            log.info(browser_name + " Browser option is selected")
            driver = webdriver.Chrome(
                executable_path=ChromeDriverManager().install(),
                options=OptionsManager.getchromeoptions())
        elif browser_name == "Firefox":
            log.info(browser_name + " Browser option is selected")
            driver = webdriver.Firefox(
                executable_path=GeckoDriverManager().install(),
                options=OptionsManager.getfirefoxoptions())
        else:
            log.warn("Entered Wrong Browser name")

    except Exception as e:
        log.error("Exception Occurred", exc_info=True)
    def verifyradiobtnisselectedornot(self):
        log = Logger.getlogger()
        sflag = False
        try:
            RadioButtons = self.driver.find_elements(*AutomationPracticePage.obj_radiobtns)
            for radiobutton in RadioButtons:
                if radiobutton.get_attribute("value") == "radio2":
                    radiobutton.click()
                    log.info("Radio Button is Selected")
                    sflag = True
                    break

            if not sflag:
                Reporter.passed(self.driver, "Radiobutton should be selected::Radio Button is Selected")
            else:
                assert False
        except AssertionError as e:
            Reporter.failed(self.driver, "Radiobutton should be selected::Radiobutton is not selected.")
        except Exception as e:
            log.error("Exception Occurred", exc_info=True)
def readdata(filename, sheetname, rowno):
    log = Logger.getlogger()
    try:
        path = os.getcwd()
        projectroot = os.path.dirname(path)
        path = projectroot + "\\resources\\testdata\\"+filename
        workbook = openpyxl.load_workbook(path)
        sheet = workbook[sheetname]

        mydict = {}

        for colno in range(1, sheet.max_column + 1):
            mydict[sheet.cell(row=1, column=colno).value] = sheet.cell(row=rowno, column=colno).value

        log.info("Data is read successfully.")

        return mydict

    except Exception as e:
        log.error("Exception Occurred", exc_info=True)
    finally:
        workbook.close()
        log.info("Workbook closed succesfully")
def writedata(filename, sheetname, rowno, mydict):
    log = Logger.getlogger()
    try:
        path = os.getcwd()
        projectroot = os.path.dirname(path)
        path = projectroot + "\\resources\\testdata\\" + filename
        workbook = openpyxl.load_workbook(path)
        sheet = workbook[sheetname]

        for colno in range(1, sheet.max_column + 1):
            key = str(sheet.cell(row=1, column=colno).value)
            if key in mydict:
                sheet.cell(row=rowno, column=colno).value = ""
                sheet.cell(row=rowno, column=colno).value = mydict[key]

        log.info("Data is write successfully.")

    except Exception as e:
        log.error("Exception Occurred", exc_info=True)
    finally:
        workbook.save(path)
        workbook.close()
        log.info("Workbook closed successfully.")
    def verifytooltiptext(self):
        log = Logger.getlogger()
        sflag = False
        try:
            WaitUtilities.waitforpagetitleis(
                self.driver,
                "Selenium Practise: How to automate tooltip in Selenium webdriver",
                5)
            hoverme = self.driver.find_element(*ToolTipTextPage.obj_hoverme)
            tooltiptext = self.driver.find_element(
                *ToolTipTextPage.obj_tooltiptext)

            action = ActionChains(self.driver)

            action.move_to_element(hoverme).click_and_hold().perform()

            WaitUtilities.waitForElementVisible(
                self.driver, ToolTipTextPage.obj_tooltiptext, 5)

            tooltipmsg = tooltiptext.text

            if tooltipmsg == "Tooltip text":
                Reporter.passed(
                    self.driver,
                    "ToolTip Text should be 'Tooltip text'.::ToolTip Text is 'Tooltip text'."
                )
            else:
                assert False

        except AssertionError as e:
            Reporter.failed(
                self.driver,
                "ToolTip Text should be 'Tooltip text'.::ToolTip Text is not 'Tooltip text'."
            )

        except Exception as e:
            log.error("Exception Occurred", exc_info=True)
def User_is_able_to_login_to_application(context):
    logger = Logger.getlogger()
    logger.info(
        "User is able to login to application with valid credentials Step is called."
    )
Esempio n. 29
0
def after_feature(context, feature):
    logger = Logger.getlogger()
    logger.info(f"After scenario {feature} is called")
Esempio n. 30
0
def before_feature(context, feature):
    logger = Logger.getlogger()
    logger.info(f"Before Feature {feature} is called")