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)
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)
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
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
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
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
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
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
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)
def getPage(self): ''' 获得对应登录身份的process页面 :return: ''' loginPage=LoginPage(self.driver) loginPage.login(self.userCount,self.userPass) self.driver.get('') self.driver.get(self.url)
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)
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
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)
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()
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""])
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
''' 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)
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()