예제 #1
0
    def test_sign_in_button(self):
        print("\n" + str("teste 1"))
        login_page = LoginPage(self.driver)
        login_page.login("*****@*****.**")
        createAccount_page = CreateAccountPage(self.driver)
        self.driver.implicitly_wait(10)
        createAccount_page.create_account("teste", "teste", "frlc_3112", "rua do teste", "florida", "5", "21", "00000", "9858858", "98585588", "teste address")
        account_page = AccountPage(self.driver)

        account_page.click_submit_personal_information()
        self.driver.implicitly_wait(5)
        value_firstname = account_page.get_values_firstname()
        value_lastname = account_page.get_values_lastname()

        account_page.click_submit_my_personal_information_back_button()
        self.driver.implicitly_wait(5)

        account_page.click_submit_my_addresses()
        self.driver.implicitly_wait(5)
        value_addresses = account_page.get_values_my_addresses()


        self.assertEqual("teste", value_firstname)
        self.assertEqual("teste", value_lastname)
        self.assertEqual("rua do teste", value_addresses)
예제 #2
0
 def test_correct_login(self):
     login_page = LoginPage(self.driver)
     login_page.open()
     login_page.enter_login(self.login)
     login_page.enter_password(self.password)
     login_page.login()
     login_page.wait_redirect(self.BASE_URL)
예제 #3
0
def login_negative(get_driver, cmdopt_url):
    """fixture to test negative scenario"""
    login_page = LoginPage(get_driver, cmdopt_url)
    login_page.navigate()
    login_page.login("demo", "demon1")
    current_result = login_page.get_alert()
    expected_result = "Такой логин и/или пароль не существует!"
    return expected_result, current_result
예제 #4
0
def login_positive(get_driver, cmdopt_url):
    """fixture to test positive scenario"""
    login_page = LoginPage(get_driver, cmdopt_url)
    login_page.navigate()
    login_page.login("demo", "demo")
    current_result = login_page.get_title()
    expected_result = "Панель состояния"
    return expected_result, current_result
예제 #5
0
def empty_form(get_driver, cmdopt_url):
    """fixture to empty login form scenario"""
    login_page = LoginPage(get_driver, cmdopt_url)
    login_page.navigate()
    login_page.login("", "")
    current_result = login_page.get_alert()
    expected_result = "Такой логин и/или пароль не существует!"
    return expected_result, current_result
예제 #6
0
def empty_form(get_driver, cmdopt_url):
    """fixture to empty login form scenario"""
    login_page = LoginPage(get_driver, cmdopt_url)
    login_page.navigate()
    login_page.login("", "")
    current_result = login_page.get_alert()
    expected_result = "No match for Username and/or Password."
    return expected_result, current_result
예제 #7
0
def login_negative(get_driver, cmdopt_url):
    """fixture to test negative scenario"""
    login_page = LoginPage(get_driver, cmdopt_url)
    login_page.navigate()
    login_page.login("admin", "admin1")
    current_result = login_page.get_alert()
    expected_result = "No match for Username and/or Password."
    return expected_result, current_result
예제 #8
0
def login_positive(get_driver, cmdopt_url):
    """fixture to test positive scenario"""
    login_page = LoginPage(get_driver, cmdopt_url)
    login_page.navigate()
    login_page.login("admin", "admin")
    current_result = login_page.get_title()
    expected_result = "Dashboard"
    return expected_result, current_result
예제 #9
0
 def test_incorrect_password(self):
     wrong_password = '******'
     login_page = LoginPage(self.driver)
     login_page.open()
     login_page.enter_login(self.login)
     login_page.enter_password(wrong_password)
     login_page.login()
     login_page.wait_redirect(self.AUTH_URL)
예제 #10
0
 def getPage(self):
     '''
     获得对应登录身份的process页面
     :return:
     '''
     loginPage=LoginPage(self.driver)
     loginPage.login(self.userCount,self.userPass)
     self.driver.get('')
     self.driver.get(self.url)
예제 #11
0
 def test_incorrect_email(self):
     wrong_email = 'yandex.ru'
     login_page = LoginPage(self.driver)
     login_page.open()
     login_page.enter_login(wrong_email)
     login_page.enter_password(self.password)
     login_page.login()
     validation_message = login_page.get_email_valigation_message()
     expected = 'Адрес электронной почты должен содержать символ "@". В адресе "' + wrong_email + '" отсутствует символ "@".'
     self.assertEqual(validation_message, expected)
예제 #12
0
    def web_update_hpm(self, i_image, i_component=BMC_CONST.UPDATE_BMCANDPNOR):

        try:

            import argparse
            from selenium import webdriver
            from easyprocess import EasyProcess
            from pyvirtualdisplay import Display
            from FWUpdatePage import FWUpdatePage
            from LoginPage import LoginPage
            from MaintenancePage import MaintenancePage
            from Page import Page

            #Open web browser using headless selenium
            display = Display(visible=0, size=(1024, 768))
            display.start()
            BMC_IP = 'https://' + self.ip
            browser = webdriver.Firefox()
        except:
            print BMC_CONST.ERROR_SELENIUM_HEADLESS
            raise OpTestError(BMC_CONST.ERROR_SELENIUM_HEADLESS)

        try:
            #Open BMC webpage
            BMC = Page(browser, BMC_IP)
            BMC.getPage()

            #Login to BMC
            BMCAuth = LoginPage(BMC, self.id, self.password)
            BMCAuth.login()

            #Find FW Update Option in menus
            BMCUpdate = FWUpdatePage(BMC)

            #Get Maintenance Page
            Maintenance = MaintenancePage(BMC)
            Maintenance.getMaintenancePage()
            Maintenance.preserveIPMI()
            Maintenance.preserveNetwork()
            Maintenance.savePage()

            #Configure TFTP Protocol Server and Image
            BMCUpdate.getProtocolConfigPage()
            BMCUpdate.selectProtocolType('TFTP')
            BMCUpdate.inputServerAddress(self.ip)
            BMCUpdate.inputImageName(i_image)
            BMCUpdate.doSave()

            #Traverse Back to FW Update Page
            BMCUpdate.getUpdateOptionsPage()
            BMCUpdate.selectHPM()
            BMCUpdate.doContinue()
            BMCUpdate.selectFile(i_image)
            BMCUpdate.doOK()

            if (i_component == BMC_CONST.UPDATE_BMC):
                BMCUpdate.selectUpdateBios()
            elif (i_component == BMC_CONST.UPDATE_PNOR):
                BMCUpdate.selectUpdateBoot_APP()
            else:
                BMCUpdate.selectUpdateAll()

            BMCUpdate.doProceed()
            BMCUpdate.WaitForFWUpdateComplete(BMC_CONST.WEB_UPDATE_DELAY)
            browser.quit()
        except:
            browser.close()
            l_msg = "hpm update using webgui failed"
            print l_msg
            raise OpTestError(l_msg)

        return BMC_CONST.FW_SUCCESS
예제 #13
0
 def test_empty_fields(self):
     login_page = LoginPage(self.driver)
     login_page.login()
     validation_message = login_page.get_email_valigation_message()
     expected = 'Заполните это поле.'
     self.assertEqual(validation_message, expected)
예제 #14
0
nameToCount={u'刘兆君':'*****@*****.**',u'陈桂英':'*****@*****.**',
             u'王兵鑫':'*****@*****.**',u'郭帅':'*****@*****.**',
             u'马双双':'*****@*****.**',u'关西成':'*****@*****.**',
             u'季丽娜':'*****@*****.**',u'梁冰':'*****@*****.**',
             u'李雪':'*****@*****.**',u'金婷婷':'*****@*****.**',
             u'张莹':'*****@*****.**',u'鲍吉龙':'*****@*****.**',
             u'徐潇然':'*****@*****.**',u'张满':'*****@*****.**',
             u'郭长全':'*****@*****.**',u'赵青松':u'*****@*****.**'}
if __name__=="__main__":
    for i in messageProcessNameList:
        print i
    for key in nameToCount:
        print key,nameToCount[key]
    from LoginPage import LoginPage
    from selenium import webdriver
    print u'单元测试未进行'
    driver=webdriver.Firefox()
    loginPage=LoginPage(driver)
    for key in nameToCount:
        loginPage.login(nameToCount[key],'test')
        res=loginPage.verifiLogin()
        if res==u'':
            print u'%s登录失败'%key
            print u'当前的cookies为'
            print driver.get_cookies()
        else:
            print u'%s登录成功'%key
            print u'当前的cookies为'
            print driver.get_cookies()

예제 #15
0
class NewProject(object):
    """
    创建新的项目
    """

    def __init__(self, driver, userCount="*****@*****.**", userPass="******"):
        """
        初始化
        userCount代表某个用户新建的项目
        :param driver:
        :return:
        """
        self.driver = driver
        self.loginPage = LoginPage(self.driver)
        self.userCount = userCount
        self.userPass = userPass

    def createNewProject(self, projectInfo, traceback=[], userCount=None, userPass=None):
        """
        创建新的项目,projectInfo 为必选参数,为项目信息录入的数组,其中
        projectInfo[4]不能为空,并且projectInfo和tarceback必须有长度的保证
        :param projectInfo:
        :param traceback:
        :return:
        """
        if userCount == None or userPass == None:
            userCount = self.userCount
            userPass = self.userPass
        self.loginPage.login(userCount, userPass)
        newProjectButton = self.driver.find_element_by_css_selector(".wrt_title > label:nth-child(1) > a:nth-child(1)")
        print u"newProjectButton是%s" % newProjectButton
        newProjectButton.click()
        print u"定位新建项目输入"
        proInput = self.driver.find_element_by_css_selector(
            "html.ng-scope body div.ng-scope div.wrap.ng-scope div.wrap_r div.w_r_t div.ng-scope div.wrt_xxin.ng-scope div.ng-scope div.wrt_xxin_l.ng-scope div.wrt_x_l_c div.wrt_x_l_tb1_inpt"
        )
        print u"定位新建项目输入成功"
        # print proInput
        proInputs = proInput.find_elements_by_xpath("div")
        # print proInputs
        for i in range(0, len(proInputs)):
            span = proInputs[i].find_element_by_xpath("span")
            cont = proInputs[i].find_element_by_xpath("input")
            cont.clear()
            cont.send_keys(projectInfo[i])
            cont.send_keys(Keys.TAB)
            print u"%s录入成功" % span.text
        if traceback != []:
            tarce = self.driver.find_elements_by_css_selector(
                "html.ng-scope body div.ng-scope div.wrap.ng-scope div.wrap_r div.w_r_t div.ng-scope div.wrt_xxin.ng-scope div.ng-scope div.wrt_xxin_l.ng-scope div.wrt_x_l_c div.wrt_x_l_tb1_inpt"
            )
            tarce = tarce[1]
            traces = tarce.find_elements_by_xpath("div")
            for i in range(0, len(traces)):
                span = traces[i].find_element_by_xpath("span")
                cont = traces[i].find_element_by_xpath("input")
                cont.clear()
                cont.send_keys(traceback[i])
                cont.send_keys(Keys.TAB)
                print u"%s录入成功" % span.text
        else:
            pass
        print u"项目信息以及跟踪反馈结果输入完毕,下面保存输入结果"
        saveButton = self.driver.find_element_by_css_selector(
            "html.ng-scope body div.ng-scope div.wrap.ng-scope div.wrap_r div.w_r_t div.ng-scope div.wrt_xxin.ng-scope div.ng-scope div.wrt_xxin_l.ng-scope div.wrt_x_l_c div.wrtxlc_sub input.yh.ng-scope"
        )
        saveButton.click()
        print u"保存项目成功"

    def getNewProjectId(self):
        """
        在新建项目后获得新建的项目的projId
        #http://test.zhaobiaosys.com/#/project?projId=12&tpltId=0
        :return:
        """
        time.sleep(1)
        url = self.driver.current_url
        tmp = url.split("&")
        tmp = tmp[0]
        tmp = tmp.split("=")
        tmp = tmp[1]
        return int(tmp)

    @staticmethod
    def unitTest():
        """
        单元测试
        可以当做新建项目的测试
        :return:
        """
        import sys

        reload(sys)
        sys.setdefaultencoding("utf-8")
        import xlrd, csv

        driver = webdriver.Firefox()
        driver.implicitly_wait(10)
        newProject = NewProject(driver)
        f = xlrd.open_workbook("yunZhaoBiaoTest.xlsx")
        newProjectInof = f.sheet_by_name("newProject")
        f = open("newProjectRes.csv", "wb")
        writer = csv.writer(f)
        writer.writerow([u"项目信息录入结果", u"备注", u"跟踪反馈结果", u"备注"])
        for row in range(1, newProjectInof.nrows):
            rowValue = newProjectInof.row_values(row)
            proInfo = rowValue[0:9]
            traceInfo = rowValue[9:]
            newProject.createNewProject(proInfo, traceInfo)
            print u"创建项目%d成功"
            writer.writerow([u"success", u"", u"success", u""])
예제 #16
0
    def web_update_hpm(self, i_image, i_component=BMC_CONST.UPDATE_BMCANDPNOR):

        try:

            import argparse
            from selenium import webdriver
            from easyprocess import EasyProcess
            from pyvirtualdisplay import Display
            from FWUpdatePage import FWUpdatePage
            from LoginPage import LoginPage
            from MaintenancePage import MaintenancePage
            from Page import Page

            #Open web browser using headless selenium
            display = Display(visible=0, size=(1024, 768))
            display.start()
            BMC_IP='https://'+self.ip
            browser = webdriver.Firefox()
        except:
            print BMC_CONST.ERROR_SELENIUM_HEADLESS
            raise OpTestError(BMC_CONST.ERROR_SELENIUM_HEADLESS)

        try:
            #Open BMC webpage
            BMC = Page(browser, BMC_IP)
            BMC.getPage()

            #Login to BMC
            BMCAuth = LoginPage(BMC, self.id, self.password)
            BMCAuth.login()

            #Find FW Update Option in menus
            BMCUpdate = FWUpdatePage(BMC)

            #Get Maintenance Page
            Maintenance = MaintenancePage(BMC)
            Maintenance.getMaintenancePage()
            Maintenance.preserveIPMI()
            Maintenance.preserveNetwork()
            Maintenance.savePage()

            #Configure TFTP Protocol Server and Image
            BMCUpdate.getProtocolConfigPage()
            BMCUpdate.selectProtocolType('TFTP')
            BMCUpdate.inputServerAddress(self.ip)
            BMCUpdate.inputImageName(i_image)
            BMCUpdate.doSave()

            #Traverse Back to FW Update Page
            BMCUpdate.getUpdateOptionsPage()
            BMCUpdate.selectHPM()
            BMCUpdate.doContinue()
            BMCUpdate.selectFile(i_image)
            BMCUpdate.doOK()

            if(i_component == BMC_CONST.UPDATE_BMC):
                BMCUpdate.selectUpdateBios()
            elif(i_component == BMC_CONST.UPDATE_PNOR):
                BMCUpdate.selectUpdateBoot_APP()
            else:
                BMCUpdate.selectUpdateAll()

            BMCUpdate.doProceed()
            BMCUpdate.WaitForFWUpdateComplete(BMC_CONST.WEB_UPDATE_DELAY)
            browser.quit()
        except:
            browser.close()
            l_msg = "hpm update using webgui failed"
            print l_msg
            raise OpTestError(l_msg)

        return BMC_CONST.FW_SUCCESS
예제 #17
0
        '''
        logger.info('Get error messages displayed on fields')
        self.wait_UI(self.__field_error_loc)
        field_errors = self.find_elements(*self.__field_error_loc)
        error_messages = []
        for error in field_errors:
            error_messages.append(error.text)
        return error_messages


if __name__ == '__main__':
    webdriver = webdriver.Firefox()
    webdriver.maximize_window()
    webdriver.implicitly_wait(10)
    login_page = LoginPage(webdriver)
    login_page.login()
    menu_bar = MenuBar(webdriver)
    menu_bar.wait_UI(menu_bar.menu_button_loc)
    menu_bar.action_toggle_menu()
    time.sleep(1)
    menu_bar.action_expand_app_group('Supply Chain Advantage')
    menu_bar.action_expand_menu('Advantage Dashboard')
    menu_bar.action_expand_menu('searchTest', False, 'search test')
    searchPage = SearchPage(webdriver)
    print(searchPage.get_page_title())
    time.sleep(1)
    print(searchPage.get_all_labels_name(1))
    searchPage.action_searchlike_input('searchLike', 'abc', 2, 'Exactly')
    searchPage.action_listbox_select('ListBox', 'Warehouse 02', 2)
    searchPage.action_checkbox_check('checkbox2', 2)
    searchPage.action_dropdown_input('time', '1:30 AM', 2)
예제 #18
0
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

from LoginPage import LoginPage

driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                          desired_capabilities=DesiredCapabilities.FIREFOX)

driver.get('https://127.0.0.1/login/')
driver.save_screenshot('print.png')

loginpage = LoginPage(driver)
loginpage.login()

driver.save_screenshot('print1.png')

driver.quit()