def Test(self): driver = self.driver self.erro = [] WebDriverTools.enterProject(driver,self.project[0],self.projectName,self.erro) sleep(3) self.checkIndex(driver) OtherTools.raiseError(self.erro)
def verifyItem(self, driver): sleep(2) #验证工单是否删除成功 #选中自动化测试专用工单 rv = [ x for x in driver.find_elements_by_css_selector("#wf-task-groups li") if x.text == '自动化测试2' ] if rv: rv[0].click() else: assert 0, "工单中未找到'自动化测试专用工单'!" sleep(3) tds = driver.find_elements_by_css_selector( "#wf-task-table tbody>tr td") if self.orderNum == 1: print("删除后应该还剩下1个td") if len(tds) == 1: print("删除工单成功!") else: WebDriverTools.get_pic(driver, self.testCaseID) assert 0, self.testCaseID + " 创建工单--修改后删除该工单失败!" else: print("删除之前工单不止1个") num = int(len(tds) / 9) if num + 1 == self.orderNum: print("删除工单成功!") else: WebDriverTools.get_pic(driver, self.testCaseID) assert 0, self.testCaseID + " 创建工单--修改后删除该工单失败!"
def AddWorkItem(self, driver): a = WebDriverTools() if a.isElementPresent(driver, '#wf-main-project-hash'): driver.find_element_by_id('wf-main-project-hash').click() sleep(2) driver.find_element_by_id("wf-add-taskGroup").click() sleep(2) driver.find_element_by_id('wf-group-name').send_keys( 'test' + self.startTime) driver.find_element_by_id('wf-group-des').send_keys('content' + self.startTime) #div = driver.find_element_by_class_name('checkbox') #div.find_element_by_tag_name('input').click() div = driver.find_element_by_xpath( "//div[@class='checkbox col-sm-3'][1]/label/input") div.click() sleep(2) driver.find_element_by_xpath("//button[@title='保存']").click() sleep(2) strFind = "//li[@data-desc='content" + self.startTime + "']" li = driver.find_element_by_xpath(strFind) if li: assert 1, "项目添加成功!" else: assert 0, "项目添加失败!"
def Test(self): a = WebDriverTools() driver = self.driver time.sleep(4) #点击忘记密码,进入密码找回页面进行操作 driver.find_element_by_css_selector("#btnForgetPwd").click() sleep(2) driver.find_element_by_css_selector("#inputEmail").clear() driver.find_element_by_css_selector("#inputEmail").send_keys( "*****@*****.**") #点击确定发送邮件 driver.find_element_by_css_selector("#passwordResetBtn").click() a.waitSpinner(driver, 'Beop登录页--忘记密码--输入邮箱后点击确定按钮') #此处获取不到提示信息 sleep(0.3) try: if a.isElementPresent(driver, '.pull-left.message'): pass else: assert 0, "忘记密码--输入邮件--点击确定按钮后没有弹出提示信息!" except Exception as e: print(e) assert 0, "忘记密码--输入邮件--点击确定按钮后没有弹出提示信息!" driver.close() self.CheckEmail()
def checkZip(self, driver): #获取次数 checkTimeMax = 300 checkTime = 0 #获取文件名 fileName = driver.find_element_by_css_selector( '#exportDataListTBody tr:nth-child(1) td:nth-child(6)').text while 1: if checkTime < checkTimeMax: progress = driver.find_element_by_css_selector( '#exportDataListTBody tr:nth-child(1) td:nth-child(7)' ).text if int(progress[:-1]) == 100: break else: print('当前导出数据进度为{}'.format(progress)) checkTime += 1 time.sleep(1) else: WebDriverTools.get_pic(driver, self.testCaseID) self.errors.append('{}--{}导出{}1天数据花费超过5分钟!'.format( self.testCaseID, self.projectName, self.dataPoints)) self.remove(self.fileList) OtherTools.raiseError(self.errors) driver.find_element_by_css_selector( '#exportDataListTBody tr:nth-child(1) td:nth-child(6) a').click() #等待下载完毕 time.sleep(5) driver.find_element_by_css_selector('.close').click() time.sleep(3) return fileName
def Test(self): a = WebDriverTools() driver = self.driver time.sleep(4) #driver.implicitly_wait(8) WebDriverTools.enterProject(driver, 120, self.projectName) #打开用户操作记录 driver.find_element_by_css_selector("#iconList").click() sleep(1) b = a.isElementPresent(driver, "#btnOperatingRecord") if b: driver.find_element_by_css_selector("#btnOperatingRecord").click() else: assert 0,"%s--%s--进入项目后没有找到操作记录按钮!" % (self.projectName,self.buzName) self.check(driver,"操作记录窗口",[".modal-content","#btnLogPre","#datePickerLog","#btnLogNext","#tableOperatingRecord",".modal-content .close"]) sleep(2) #关闭窗口 driver.find_element_by_css_selector("#dialogContent .close").click() sleep(2) #再次进入操作记录 driver.find_element_by_css_selector("#iconList").click() driver.find_element_by_css_selector("#btnOperatingRecord").click() sleep(2) self.check2(driver,"再次打开操作记录窗口时",["#dialogContent","#btnLogPre","#datePickerLog","#btnLogNext","#tableOperatingRecord"])
def login(self, browser, user='******'): driver = DriverMethods(browser) app.config.from_object(user_conf[user]) USERNAME = app.config['USERNAME'] PASSWORD = app.config['PASSWORD'] try: driver.clear('登录页面', '用户名输入框') driver.send('登录页面', '用户名输入框', USERNAME) driver.clear('登录页面', '密码输入框') driver.send('登录页面', '密码输入框', PASSWORD) driver.click('登录页面', '登录按钮') '''driver.find_element_by_id("txtName").clear() driver.find_element_by_id("txtName").send_keys(USERNAME) driver.find_element_by_id("txtPwd").clear() driver.find_element_by_id("txtPwd").send_keys(PASSWORD) driver.find_element_by_id("btnLogin").click()''' except Exception as e: Log.writeLogError(self.logName, "funcname: login" + e.__str__()) WebDriverTools.get_pic(driver, 'func_login') #WebDriverTools.waitSpinner(driver, '登陆页面', 'spinner', timeout=23) time.sleep(3) ele = False try: ele = driver.display("Beop首页", 'logo') except: pass if ele: print("用户%s登陆成功" % app.config['USERNAME']) else: WebDriverTools.get_pic(driver, 'func_login') assert 0,"用户%s 密码%s登陆失败,请检查账号密码是否正确!" % (USERNAME, PASSWORD) return browser
def checkTime(self,driver,error): startTime = driver.find_element_by_css_selector("#iptTimeStart") endTime = driver.find_element_by_css_selector("#iptTimeEnd") button = driver.find_element_by_css_selector('.btnQueryTool.btn-success.btnQuery') exportbutton = driver.find_element_by_css_selector('.btnQueryTool.btn-primary.btnExport') startTime.click() try: driver.find_element_by_css_selector(".table-condensed>tbody>tr>td.day.active").click() driver.find_element_by_css_selector(".table-condensed>tbody>tr>td>span.hour.active").click() driver.find_element_by_css_selector(".table-condensed>tbody>tr>td>span.minute.active").click() except Exception as e: print(e.__str__()) error.append("选中开始时间按钮有误,未选中相应按钮!") endTime.click() try: time = datetime.datetime.strftime(datetime.datetime.now(),'%Y-%m-%d %H:%M') driver.find_element_by_css_selector("#iptTimeEnd").clear() driver.find_element_by_css_selector("#iptTimeEnd").send_keys(time) except Exception as e: print(e.__str__()) error.append("选中结束时间按钮有误,未选中相应按钮!") button.click() driver.implicitly_wait(3) stattext = driver.execute_script('var a;return a=$("#iptTimeStart").val()').split(" ")[0] endtext = driver.execute_script('var a;return a=$("#iptTimeEnd").val()').split(" ")[0] self.filename = '历史记录-%s--%s.xls'%(stattext,endtext) text = driver.find_element_by_css_selector(".tableDetail") WebDriverTools.checkNull(text,error,'温度趋势展开数据','设备展开页面') exportbutton.click() datelist = driver.find_elements_by_css_selector('.tableDetail>tbody>tr') WebDriverTools.checkloadexcelFile(self.filename,error,datelist)
def release(self, driver): a = WebDriverTools() #进入用户菜单 driver.find_element_by_css_selector("#userAccount").click() #发布项目 driver.find_element_by_css_selector("#lkRelease").click() WebDriverWait(driver, 10).until(lambda x: x.find_element_by_css_selector( ".btn.btn-default.directRelease")) sleep(2) driver.find_element_by_css_selector( ".btn.btn-default.directRelease").click() sleep(2) driver.find_element_by_css_selector("#relPass").clear() driver.find_element_by_css_selector("#relPass").send_keys("wuranxu") driver.find_element_by_css_selector( ".btn.btn-default.directRelease").click() sleep(2) if a.isElementPresent(driver, ".btn.btn-info.alert-button"): sure = [ x for x in driver.find_elements_by_css_selector( ".btn.btn-info.alert-button") if x.text == '确认' ] sure[0].click() #driver.find_element_by_css_selector(".btn.btn-info.alert-button").click() else: assert 0, "factory--点击发布项目后没有发布成功的对话框!"
def enterItem(self, driver, locationId, projectName, errors): time.sleep(10) WebDriverTools.waitElementNotFound(driver, '.spinnerMask', self.testCaseID) driver.find_element_by_id("navHomeLogo").click() time.sleep(1) WebDriverTools.enterProject(driver, locationId, projectName, errors) time.sleep(3)
def newPoint(self, driver): a = WebDriverTools() #获取当前巡更点个数 now_points = driver.find_elements_by_css_selector( "#tablePoints tbody tr") #新建巡更点 button = a.isElementPresent(driver, "#btnAddpoint") WebDriverTools.waitElementNotFound(driver, '.spinnerMask', self.testCaseID, 100) if button: driver.find_element_by_css_selector("#btnAddpoint").click() else: assert 0, "进入%s/patrol页面没有找到新建巡更点按钮!" % self.url sleep(1) #输入巡更点名称,选择巡更类型,输入巡更要求,点击添加按钮 driver.find_element_by_css_selector( ".form-control.pointName").send_keys("AutoTestPoint") Select(driver.find_element_by_css_selector( ".form-control.pointType")).select_by_value("1") driver.find_element_by_tag_name("textarea").send_keys( "No requirement!") driver.find_element_by_css_selector("#btnSave").click() #等待2秒 sleep(2) #对比是否新加了巡更点 new_points = driver.find_elements_by_css_selector( "#tablePoints tbody tr") if len(now_points) < len(new_points): print("巡更点添加成功!") else: assert 0, "巡更页面--巡更点添加失败,因为点个数没有变化!"
def editPage(self, driver): sleep(5) #进入到最后一个页面 try: page = driver.find_element_by_css_selector( '#treeControl>li:last-child') except: assert 0, '目录页面为空' ActionChains(driver).double_click(page).perform() sleep(3) #进入页面管理 tabs = driver.find_elements_by_css_selector( '.tab-handle.disable-selection') tabs[1].click() #找到刚才新建的页面 try: ActionChains(driver).move_to_element( driver.find_element_by_css_selector( 'a[title="冷凝温度 - PageScreen"]')).double_click().perform() except: assert 0, '新建的页面不存在或者丢失' #再次进入页面管理 tabs = driver.find_elements_by_css_selector( '.tab-handle.disable-selection') tabs[1].click() #修改页面信息 sleep(2) driver.find_element_by_id('editPage').click() s = driver.find_element_by_id('inputPageName') s.clear() s.send_keys("传感器分析") is_enabled = driver.find_element_by_id('selectPageType').is_enabled() if (is_enabled == False): print('不可编辑页面类型') else: assert 0, '页面类型在编辑时能操作' driver.find_element_by_id('inputPageWidth').clear() driver.find_element_by_id('inputPageWidth').send_keys('1250') driver.find_element_by_id('inputPageHeight').clear() driver.find_element_by_id('inputPageHeight').send_keys('600') page_display = driver.find_element_by_id('selectPageDisplay') select_page_display = Select(page_display) select_page_display.select_by_visible_text("居中") driver.find_element_by_id('btnOk').click() sleep(3) #保存 driver.find_element_by_id('lkSync').click() #发布页面 driver.find_element_by_id('userAccount').click() driver.find_element_by_id('lkRelease').click() sleep(3) driver.find_element_by_id('inputPwd').send_keys('Rnbtech1103') driver.find_element_by_id('inputMsg').send_keys('123') driver.find_element_by_id('btnSubmit').click() WebDriverTools.waitElement(driver, '.btn.btn-info.alert-button', self.testCaseID, timeout=20) driver.find_element_by_css_selector( '.btn.btn-info.alert-button').click()
def check(self, driver): page = ["光明首页"] WebDriverTools.enterProject(driver, 425, projName=self.projectName, errors=self.errors) iframe = driver.find_element_by_tag_name("iframe") driver.switch_to_frame(iframe) ele = driver.find_element_by_css_selector(".pointList") WebDriverTools.checkNull(ele, self.errors, page, "点击固定点左侧设备名称") driver.find_element_by_css_selector("#movePointBtn").click() sleep(2) ele = driver.find_elements_by_css_selector(".pointList")[1] WebDriverTools.checkNull(ele, self.errors, page, "点击移动点左侧设备名称") driver.find_element_by_id("pointTitleIpt").send_keys("9L1423") driver.find_element_by_id("pointSearch").click() sleep(2) driver.find_element_by_css_selector("#navPoint_20020000000001").click() try: nohistroy = driver.find_element_by_css_selector( ".infoBox.infoBox-unique.infoBoxAlert") self.errors.append("点击设备弹出了没有历史数据的对话框") except Exception as e: print("没有出现对话框") sleep(2) WebDriverTools.checkCanvas(driver, self.errors, page) canvas = driver.find_elements_by_tag_name("canvas") if (len(canvas) == 2): print("合格率曲线和温度曲线都出来了") else: self.errors.append("合格率曲线或温度曲线没有显示出来") ele = driver.find_element_by_id("MFPointContainer") WebDriverTools.checkNull(ele, self.errors, page, "选中设备后页面右侧")
def checkOld(self, driver, projectName): a = WebDriverTools() time.sleep(2) reports = driver.find_elements_by_css_selector( "li[class~='list-group-item']") if reports == []: a.get_pic(driver, self.testCaseID) self.errors.append("进入%s项目找不到左侧报表栏!" % projectName) for i in range(len(reports)): driver.find_elements_by_css_selector( "li[class~='list-group-item']")[i].click() time.sleep(6) WebDriverTools.waitElementNotFound(driver, '.spinnerMask', self.testCaseID) r = driver.find_elements_by_css_selector( "li[class~='list-group-item']")[i] contents = driver.find_elements_by_css_selector( '#report-unit-1 .report-unit .summary') if contents != []: textEle = driver.find_element_by_css_selector( '.step-play-list') WebDriverTools.checkNull(textEle, self.errors, [ projectName, driver.find_elements_by_css_selector( "li[class~='list-group-item']")[i].text ], '内容') print('%s项目->%s报表存在!' % (projectName, driver.find_elements_by_css_selector( "li[class~='list-group-item']")[i].text)) if not i: self.downloadPDF( driver, downloadDir, projectName, driver.find_elements_by_css_selector( "li[class~='list-group-item']")[i].text, 'old') self.downloadWORD( driver, downloadDir, projectName, driver.find_elements_by_css_selector( "li[class~='list-group-item']")[i].text) else: reportName = driver.find_elements_by_css_selector( "li[class~='list-group-item']")[i].text if ("月" in reportName or "onth" in reportName or reportName == 'Diagnosis Report' or reportName == '诊断报表') and int(datetime.datetime.now().day) <= 5: print("5号之前月报还没生成!") else: WebDriverTools.get_pic(driver, self.testCaseID) self.errors.append('%s项目->%s报表内容为空!' % (projectName, reportName)) '''txt = driver.find_elements_by_css_selector('#report-unit-1 .report-unit .summary') if len(txt) > 0: pass else: driver.get_screenshot_as_file(r'.\ErrorPicture\%s\%s.png' % (self.testCaseID,time.strftime("%Y-%m-%d %H-%M-%S", time.localtime()))) errors.append('%s项目->%s报表内容为空!' % (project,driver.find_elements_by_css_selector("li[class~='list-group-item']")[i].text)) #assert 0,'%s项目->%s报表内容为空!' % (project,driver.find_elements_by_css_selector("li[class~='list-group-item']")[i].text)''' time.sleep(2)
def downloadPDF(self, driver, dir, project, report, mode): status = False time.sleep(2) #点击下载PDF按钮 try: if mode == 'old': driver.find_element_by_id("exportPDF").click() else: driver.find_element_by_css_selector(".pdfDownCtn.in").click() time.sleep(10) except Exception as e: print(e.__str__()) WebDriverTools.get_pic(driver, self.testCaseID) self.errors.append("%s项目->%s报表下载PDF失败!<br>" % (project, report)) for root, dirs, files in os.walk(dir): for file in files: if report in file and '.pdf' in file: status = True break if not status: print("下载PDF失败!") self.errors.append("%s项目->%s报表下载PDF失败!因为下载目录中未包含%s文件!" % (project, report, report)) else: print("下载PDF成功!")
def check(self, driver): page = ["光明首页"] WebDriverTools.switchToIframe(driver, self.testCaseID, pageName=page) driver.find_element_by_css_selector("#movePointBtn").click() sleep(2) driver.find_element_by_css_selector("#navPoint_20020000000001").click() sleep(2) driver.find_element_by_css_selector( "div[_id='20020000000001']>.dataContainer>button").click() self.checkPath(driver) yes = datetime.datetime.now() - datetime.timedelta(days=1) start = datetime.datetime.strftime(yes, '%Y-%m-%d 00:00') end = datetime.datetime.strftime(yes, '%Y-%m-%d 23:59') driver.execute_script("$('.startTime >input').attr('value','" + start + "')") driver.execute_script("$('.endTime>input').attr('value','" + end + "')") driver.execute_script("$('.selectBtn.btn.btn-success').click()") start_down = driver.find_element_by_css_selector( ".currentStartDate").text end_down = driver.find_element_by_css_selector(".currentEndDate").text if (start == start_down and end == end_down): print("时间正确") else: self.errors.append("切换日期,拖拽控件处的时间没有改变") self.checkPath(driver) driver.find_element_by_css_selector(".backMap.btn.btn-primary").click() try: driver.find_element_by_css_selector("div[_id='20020000000001']") print('转回到地图了') except Exception as e: self.errors.append("点击回到地图没有返回到地图页面")
def deleteExecutor(self, driver): #获取刚才新建的巡更人员 executors_before = driver.find_elements_by_css_selector( '#patroPersonList >div') #选中该巡更人员 executor = executors_before[-1] #查看删除巡更人员按钮是否存在 a = WebDriverTools() flag = a.isElementPresent(driver, '#deletePerson') if (flag): driver.find_elements_by_css_selector('#deletePerson')[0].click() else: assert 0, '删除巡更人员按钮不存在' flag2 = a.isElementPresent(driver, ".infoBox-footer") if (flag2): sure = [ x for x in driver.find_elements_by_css_selector( ".btn.btn-info.alert-button") if x.text == '确认' ] sure[0].click() else: assert 0, '点击删除巡更人员按钮,没有出现弹框' sleep(2) executors_after = driver.find_elements_by_css_selector( '#patroPersonList >div') if (len(executors_before) - len(executors_after) != 1): assert 0, '删除巡更人员失败' else: print('删除巡更人员成功')
def newPage(self,driver,projName): a = WebDriverTools() #进入所建立的项目 projs = driver.find_elements_by_css_selector(".proText") if projs != []: # for p in projs: # if p.text == projName: # # p.click() js='$("span[title=\'%s\']").dblclick()' % projName driver.execute_script(js) else: assert 0,"factory项目页左侧未找到项目!" #a.find_spinner(driver,cur_time=time.time(),project="进入factory中新添加的项目",timeout="15") sleep(2) try: WebDriverWait(driver, 15).until(lambda x: x.find_element_by_css_selector(".icon-circle-arrow-right")) except Exception as e: WebDriverTools.get_pic(driver, self.driver) assert 0,"factory进入新添加的项目,等待10秒后页面右上角没有出现'页面管理'!" driver.find_element_by_css_selector("#addPage").click() sleep(2) x = a.isElementPresent(driver,"#inputPageName") if x: print("输入框存在!") else: assert 0,"在新加的项目中添加页面时没有找到输入页面名字的输入框!" driver.find_element_by_css_selector("#inputPageName").clear() driver.find_element_by_css_selector("#inputPageName").send_keys("NewPage") #确认新建页面 driver.find_element_by_css_selector("#btnOk").click() sleep(3) #保存该页面 driver.find_element_by_css_selector("#lkSync").click() sleep(3)
def checkIndex(self,driver): WebDriverTools.checkWeather(driver,self.erro,[self.project[1]]) lis = driver.find_elements_by_css_selector("#kipList01 > div") WebDriverTools.checkHoverData(driver, self.erro, lis, [self.project[1]], "KPI显示鼠标放上去") #检查slider下边的值 ele = driver.find_element_by_id("paneEnergyInfo") WebDriverTools.checkNull(ele,self.erro,[self.project[1]],"今日机房总耗能数") ele = driver.find_element_by_id("paneEffectInfo") WebDriverTools.checkNull(ele,self.erro,['金钟广场'],"当前机房能耗") lst = driver.find_elements_by_css_selector("ol.carousel-indicators > li") for index,eles in enumerate(lst): if index != 2: eles.click() sleep(10) countain = driver.find_elements_by_css_selector(".report-content.clearfix") WebDriverTools.checkNull(countain[index], self.erro, [self.projectName], "第%d个slider处"%(index+1)) if index != 0: button = driver.find_element_by_css_selector(".item.active > .carousel-caption > .runRept >button") button.click() leftcsn = WebDriverWait(driver,10).until(lambda x : x.find_element_by_id("leftCtn")) if "运行报表" in leftcsn.text: print("点击更多按钮跳转到运行报表页面") sleep(2) driver.back() sleep(3) driver.find_elements_by_css_selector("ol.carousel-indicators > li")[2].click() sleep(2) else: self.erro.append('点击home页面slider里面的button按钮没有跳转到报表页面')
def checkCollection(self, driver): #global grede try: tr = driver.find_elements_by_css_selector( '.table.table-bordered.table-striped' )[1].find_elements_by_css_selector("tbody > tr")[0] isMonitoring = WebDriverWait( driver, 15).until(lambda x: x.find_element_by_id('isMonitoring')) except Exception as e: print(e.__str__()) self.errors.append("checkCollection error:%s" % (e.__str__())) #overtime = driver.find_elements_by_css_selector('#tableWatch > tbody > tr > td') trs = driver.find_elements_by_css_selector( '.table.table-bordered.table-striped' )[1].find_elements_by_css_selector("tbody > tr") tr = trs[0] score = tr.find_elements_by_css_selector("td")[0] st = score.text WebDriverWait( tr, 15).until(lambda x: x.find_element_by_css_selector("span")) select = tr.find_element_by_css_selector("span >span") if ('glyphicon-star-empty' in select.get_attribute('class')): select.click() sleep(2) isMonitoring.click() sleep(4) overtime = driver.find_elements_by_css_selector( '.table.table-bordered.table-striped' )[1].find_elements_by_css_selector("tbody > tr >td") if st in overtime[0].text: print("数据信息收藏添加成功!") else: self.errors.append("数据信息收藏添加失败!") sleep(2) driver.refresh() button = driver.find_element_by_id('isMonitoring') driver.execute_script("$('#searchPoint').val('" + st + "')") driver.execute_script("$('#filterConfirm').click()") sleep(3) trs = driver.find_elements_by_css_selector( '.table.table-bordered.table-striped' )[1].find_elements_by_css_selector("tbody > tr") for i in trs: grede = i.find_elements_by_css_selector("td")[0].text if grede == st: i.find_elements_by_css_selector("td")[ -1].find_element_by_css_selector("span >span").click() sleep(2) button.click() sleep(2) delele = driver.find_elements_by_css_selector( '.table.table-bordered.table-striped' )[1].find_element_by_css_selector("tbody") if st not in delele.text: print("数据信息收藏删除成功") else: WebDriverTools.get_pic(driver, self.testCaseID) self.errors.append("数据信息收藏删除失败")
class Case098(unittest.TestCase): testCaseID = "Case098" projectName = "" buzName = "添加数据源后标题栏消失" now = 'None' url = "http://%s" % app.config['SERVERIP'] project = (72, '上海华为', ['设备', '系统诊断', '系统诊断'], '#indexMain') def setUp(self): self.start = datetime.datetime.now() self.startTime = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()).split(" ")[-1] MemcacheTools.setMemTime(self.testCaseID,{"startTime":self.startTime}) lg = LoginTools() self.driver = lg.InitialChrome(self.url, self.testCaseID) self.driver = lg.login(self.driver) self.tools = WebDriverTools() def tearDown(self): self.start = str((datetime.datetime.now() - self.start).seconds) self.start = self.start + "s" self.now = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()).split(" ")[-1] self.driver.quit() MemcacheTools.setMemTime(self.testCaseID,{'start':self.startTime,'end':self.now}) def Test(self): driver = self.driver self.errors = [] self.tools.enterProject(driver, self.project[0], self.project[1], self.errors) sleep(3) self.tools.enterPage(driver, self.project[2], self.project[3], self.project[1], timeout=180) sleep(3) self.ReappearFunction(driver) OtherTools.raiseError(self.errors) def ReappearFunction(self, driver): action = ActionChains(driver) can = driver.find_element_by_xpath('//div[@id="floorCt"]') action.move_to_element(can).click() action.move_by_offset(180, 60) action.move_by_offset(30, 30).click().perform() #sleep(5) #WebDriverWait(driver, 20).until(lambda x: x.find_element_by_css_selector('#selectGroup')) driver.find_element_by_css_selector(".lkAddToDS").click() sleep(3) driver.find_element_by_id("selectGroup").click() driver.find_element_by_xpath('//option[@value="57b11417833c97391d022d79"]').click() sleep(3) driver.find_element_by_id("btnImportJump").click() sleep(3) driver.find_element_by_xpath('//a[@pageid="148057159498150889cba340"]').click() sleep(3) title = driver.find_element_by_id("scrollPages") if title.size['height'] < 80: self.errors.append('数据点加入数据分析,然后去点菜单的时候点不开!')
def Test(self): sleep(2) self.errors=[] driver = self.driver # 进入深圳华为演示用项目 WebDriverTools.enterProjForFactory(driver,self.errors,'$("span[title=\'深圳华为演示用\']").dblclick()') self.search(driver) OtherTools.raiseError(self.errors)
def icon_view_login(self, driver, projectName, icon_locator=[]): getele = self.icon_how_present(driver, projectName, icon_locator) try: getele[0].click() icon_time = WebDriverTools() icon_time.calculate(driver, 'spinnerMask') except Exception: assert 0, projectName + ':' + getele[1] + '-点击图标后登陆失败'
def tearDown(self): if ("Exception" or "AssertionError" in str([x[1] for x in self._outcome.errors if x[1]!=None])) or self.errors: WebDriverTools.get_pic(self.driver, self.testCaseID) self.start = str((datetime.datetime.now() - self.start).seconds) self.start = self.start + "s" self.now = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()).split(" ")[-1] self.driver.quit() MemcacheTools.setMemTime(self.testCaseID,{'start':self.startTime,'end':self.now})
def setUp(self): self.start = datetime.datetime.now() self.startTime = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()).split(" ")[-1] MemcacheTools.setMemTime(self.testCaseID, {'start':self.startTime}) lg = LoginTools() self.driver = lg.InitialChrome(self.url, self.testCaseID) self.driver = lg.login(self.driver) self.tools = WebDriverTools()
def CreateWorkOrder(self, driver): a = WebDriverTools() if a.isElementPresent(driver, '#wf-main-project-hash'): driver.find_element_by_id('wf-main-project-hash').click() sleep(2) driver.find_element_by_xpath( "//ul[@id='wf-task-groups']/li[1]").click() sleep(2) driver.find_element_by_id('wf-task-filter-new-task').click() sleep(2) driver.find_element_by_id('taskTitle').send_keys('testWorkOrder_' + self.startTime) driver.find_element_by_id('taskDueTime').send_keys(self.startDate) driver.find_element_by_id('wfDetail').send_keys('Detail_' + self.startDT) driver.find_element_by_id('wf-labelNames').click() sleep(1) driver.find_element_by_xpath( "//select[@id='wf-labelNames']/option[2]").click() sleep(1) driver.find_element_by_id('wfWatchersAdd').click() sleep(1) # relative people driver.find_element_by_xpath( "//div[@class='wf-search-result scrollbar']/div[8]").click() driver.find_element_by_id('wf-member-comfirm-btn').click() sleep(1) driver.find_element_by_xpath( "//div[@id='taskProcess']/div[2]/div/div/span[1]").click() sleep(1) driver.find_element_by_xpath( "//div[@class='wf-search-result scrollbar']/div[8]").click() driver.find_element_by_id('wf-member-comfirm-btn').click() sleep(1) driver.find_element_by_xpath( "//div[@id='taskProcess']/div[3]/div/div/span[1]").click() sleep(1) driver.find_element_by_xpath( "//div[@class='wf-search-result scrollbar']/div[8]").click() driver.find_element_by_id('wf-member-comfirm-btn').click() sleep(1) driver.find_element_by_id('taskSave').click() sleep(1) # return page driver.find_element_by_xpath( "//ul[@id='wf-task-groups']/li[1]").click() sleep(3)
def EnterDataAnalysis(self, driver): a = WebDriverTools() if a.isElementPresent(driver, '#iconList'): driver.find_element_by_id("iconList").click() else: assert 0, "用户登陆后未找到用户菜单!" driver.find_element_by_id('btnDataAnalys').click() a.waitSpinner(driver, '用户菜单--数据分析') time.sleep(2)
def check(self, driver): WebDriverTools.enterModuleByUserMenu(driver, 'btnPointManager', '数据管理', '#dataManagerCloudMenu') sleep(3) driver.find_elements_by_css_selector('.pointManagerCloudPointUl')[ 3].find_elements_by_css_selector('li')[-1].click() sleep(5) lis = driver.find_elements_by_css_selector('#diagnosisFilesUl >li') for li in lis: if (li.text == 'pageauto'): li.find_element_by_tag_name('a').click() # driver.execute_script("$('.button.remove').click()") driver.execute_script("$('span[title=\"删除\"]').click()") sleep(2) driver.execute_script( "$('.infoBox-footer >button')[0].click()") sleep(5) be_len = driver.execute_script( "be_len=$('#diagnosisFilesUl >li').length;return be_len;") driver.execute_script("$('#diagnosisFileAdd').click()") driver.execute_script("$('#import_from_template').click()") sleep(3) driver.execute_script("$('#templateTreeMenu >li>span')[0].click()") sleep(3) driver.execute_script("$('#templateTreeMenu >li>ul>li>a')[0].click()") sleep(3) driver.execute_script("$('#templateImportConfirm').click()") driver.execute_script("$(\"#diagnosisModuleName\").val('pageauto')") driver.execute_script("$('#diagnosisConfirm').click()") sleep(2) driver.execute_script("$('.infoBox-footer >button').click()") sleep(5) af_len = driver.execute_script( "af_len=$('#diagnosisFilesUl >li').length;return af_len;") af_name = driver.execute_script( "be_name=$('#diagnosisFilesUl >li').last().text();return be_name;") if (af_len - be_len == 1): print('新建诊断页面成功') else: self.errors.append('新建诊断页面失败') if (af_name == 'pageauto'): print('编辑诊断页面成功') else: self.errors.append('编辑诊断页面失败') # driver.execute_script("$('.button.remove').click()") driver.execute_script("$('span[title=\"删除\"]').click()") sleep(2) driver.execute_script("$('.infoBox-footer >button')[0].click()") sleep(5) delete_len = driver.execute_script( "delete_len=$('#diagnosisFilesUl >li').length;return delete_len;") if (delete_len == be_len): print('删除诊断页面成功') else: self.errors.append('删除诊断页面失败')
def Test(self): sleep(2) self.errors = [] driver = self.driver # 进入demoEng09导出数据页面 WebDriverTools.enterProject(driver, "175", "demoEng09", self.errors) WebDriverTools.enterModuleByUserMenu(driver, "btnPointManager", "数据管理", "#dataManagerCloudMenu") self.checkexport(driver) OtherTools.raiseError(self.errors)
class Case066(unittest.TestCase): testCaseID = 'Case066' projectName = "175LiverpoolStreet" buzName = '检查Diagnosis页面是否正常' now = 'None' url = "http://%s" % app.config['SERVERIP'] project = (293, '175LiverpoolStreet') def setUp(self): self.start = datetime.datetime.now() self.startTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()).split(" ")[-1] MemcacheTools.setMemTime(self.testCaseID, {'start': self.startTime}) lg = LoginTools() self.driver = lg.InitialChrome(self.url, self.testCaseID) self.driver = lg.login(self.driver) self.tools = WebDriverTools() def Test(self): driver = self.driver self.errors = [] self.tools.enterProject(driver, self.project[0], self.project[1], self.errors) sleep(3) self.checkDiagnosis(driver) OtherTools.raiseError(self.errors) #检查Operation Summary目录下的页面 def checkDiagnosis(self, driver): page = ['Diagnosis'] self.tools.enterPage(driver, page, '#floorCt', self.projectName) self.tools.checkNavigation(driver, self.errors, page, 4) driver.find_element_by_css_selector('#btnNoticeHistory').click() sleep(3) historyLog = driver.find_element_by_css_selector('#historyLog') self.tools.checkNull(historyLog, self.errors, page, '历史日志') historyLog.find_element_by_css_selector('div > button').click() sleep(3) driver.find_element_by_css_selector('#btnNoticeConfig').click() sleep(3) diagnosisConfig = driver.find_element_by_css_selector( '#diagnosisConfig') self.tools.checkNull(diagnosisConfig, self.errors, page, '配置') diagnosisConfig.find_element_by_css_selector('div > button').click() def tearDown(self): self.start = str((datetime.datetime.now() - self.start).seconds) self.start = self.start + "s" self.now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()).split(" ")[-1] self.driver.quit() MemcacheTools.setMemTime(self.testCaseID, { 'start': self.startTime, 'end': self.now })