def test_support(self): """Check creating emp""" dr = self.driver dr.get("http://*****:*****@id='tree']/ul/li/ul/li[3]/a").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") # 验证新增成功 dr.find_element_by_id("ctl00_cntQuery_SeachSel1_IoFieldQuery1_txtSimple").send_keys("may") dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click() # self.assertTrue(EC.presence_of_element_located("//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a")) dr.find_element_by_xpath("//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a").click() # 验证姓名 tname = dr.find_element_by_id("ctl00_cntForm_txtName").get_attribute("value") lname = dr.find_element_by_id("ctl00_cntForm_txtLoginid").get_attribute("value") self.assertEqual(tname, "may1", "username incorrect") self.assertEqual(lname, "may", "loginid incorrect")
def test_add_chuanyue(self): """Chuanyue checking""" name = u'传阅' + time.strftime('%m%d-%H:%M:%S', time.localtime(time.time())) dr = self.driver dr.get(self.base_url) #登录 base.login(dr, self.cfg['username'], self.cfg['password']) dr.switch_to.frame("indexFrame") dr.find_element_by_id("imgCloseRemind").click() dr.switch_to.frame("MenuFrame") #新增传阅 dr.find_element_by_xpath( "//div[@id='tree']/ul/li/ul/li/ul/li/ul/li[4]/a").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_cntGrid1_hlkAdd").click() #填写标题 dr.find_element_by_id("ctl00_cntForm_txtSubject").send_keys(name) #添加传阅对象 dr.find_element_by_id("ctl00_cntForm_cmdAdd").click() sleep(3) Select( dr.find_element_by_id("ctl00_cntForm_lstEmp")).select_by_index(0) dr.find_element_by_id("ctl00_cntForm_cmdAdd").click() Select( dr.find_element_by_id("ctl00_cntForm_lstEmp")).select_by_index(1) dr.find_element_by_id("ctl00_cntForm_cmdAdd").click() dr.find_element_by_id("ctl00_cntButton_cmdOK").click() #上传附件 dr.find_element_by_id("ctl00_cntForm_IoFileAtt1_File1").send_keys( u'F:\加班.txt') dr.find_element_by_id("ctl00_cntForm_IoFileAtt1_cmdUpFile").click() #填写正文 dr.switch_to_frame("ctl00_cntForm_HtmlEditor1_FCKeditor1___Frame") dr.find_element_by_id("xEditingArea").send_keys(u"测试传阅啊!") dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") #开始传阅 dr.find_element_by_id("ctl00_cntButton_cmdStartMsg").click() #验证传阅 dr.find_element_by_id("ctl00_MsgTab1_lnk2").click() dr.find_element_by_xpath( "//table[@id='ctl00_cntGrid1_dgdData']/tbody/tr[2]/td[3]/a").click( ) dr.save_screenshot(self.cfg['test_output_path'] + u"screenshot\传阅.png")
def test_add_chuanyue(self): """Chuanyue checking""" name = u'传阅'+time.strftime('%m%d-%H:%M:%S',time.localtime(time.time())) dr = self.driver dr.get(self.base_url) #登录 base.login(dr,self.cfg['username'],self.cfg['password']) dr.switch_to.frame("indexFrame") dr.find_element_by_id("imgCloseRemind").click() dr.switch_to.frame("MenuFrame") #新增传阅 dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li/ul/li/ul/li[4]/a").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_cntGrid1_hlkAdd").click() #填写标题 dr.find_element_by_id("ctl00_cntForm_txtSubject").send_keys(name) #添加传阅对象 dr.find_element_by_id("ctl00_cntForm_cmdAdd").click() sleep(3) Select(dr.find_element_by_id("ctl00_cntForm_lstEmp")).select_by_index(0) dr.find_element_by_id("ctl00_cntForm_cmdAdd").click() Select(dr.find_element_by_id("ctl00_cntForm_lstEmp")).select_by_index(1) dr.find_element_by_id("ctl00_cntForm_cmdAdd").click() dr.find_element_by_id("ctl00_cntButton_cmdOK").click() #上传附件 dr.find_element_by_id("ctl00_cntForm_IoFileAtt1_File1").send_keys(u'F:\加班.txt') dr.find_element_by_id("ctl00_cntForm_IoFileAtt1_cmdUpFile").click() #填写正文 dr.switch_to_frame("ctl00_cntForm_HtmlEditor1_FCKeditor1___Frame") dr.find_element_by_id("xEditingArea").send_keys(u"测试传阅啊!") dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") #开始传阅 dr.find_element_by_id("ctl00_cntButton_cmdStartMsg").click() #验证传阅 dr.find_element_by_id("ctl00_MsgTab1_lnk2").click() dr.find_element_by_xpath("//table[@id='ctl00_cntGrid1_dgdData']/tbody/tr[2]/td[3]/a").click() dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\传阅.png")
def test_empty_user_and_password(self): """ Test an empty username and passwod for three cases and assert 400 Bad request for each case. """ rv=login(self.c,"","admin") assert rv.status_code == 400 rv=login(self.c,"admin","") assert rv.status_code == 400 rv=login(self.c,"","") assert rv.status_code == 400
def test_add_emp(self): """Add emp checking """ name = "test" + time.strftime('%m%d-%H%M%S', time.localtime( time.time())) dr = self.driver dr.get(self.base_url) #登录 base.login(dr, self.cfg['admin'], self.cfg['password']) dr.switch_to.frame("indexFrame") dr.switch_to.frame("MenuFrame") #新增人员 dr.execute_script("window.scrollTo(0, document.body.scrollHeight);") dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[3]/a").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_cntGrid1_lnkAdd").click() #填写人员姓名 dr.find_element_by_id("ctl00_cntForm_txtName").send_keys(name) #填写登陆账号 dr.find_element_by_id("ctl00_cntForm_txtLoginid").send_keys(name) #填写部门职位 Select(dr.find_element_by_id("ctl00_cntForm_EmpDepPos1_drpDep") ).select_by_visible_text(u"人力资源部") #Select(dr.find_element_by_id("ctl00_cntForm_EmpDepPos1_drpPos")).select_by_value("9") #填写登陆密码 dr.find_element_by_id("ctl00_cntForm_txtInitPW").send_keys("123456") dr.find_element_by_id("ctl00_cntForm_txtCheckPW").send_keys("123456") #保存退出 dr.find_element_by_id("ctl00_cntButton_cmdSaveExi").click() #验证新增成功 dr.find_element_by_id( "ctl00_cntQuery_SeachSel1_IoFieldQuery1_txtSimple").send_keys(name) dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click() # self.assertTrue(sel.is_element_present("xpath=//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a")) dr.find_element_by_xpath( "//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a" ).click() #验证姓名 tname = dr.find_element_by_id("ctl00_cntForm_txtName").get_attribute( "value") lname = dr.find_element_by_id( "ctl00_cntForm_txtLoginid").get_attribute("value") self.assertEqual(tname, name, "username incorrect") self.assertEqual(lname, name, "loginid incorrect") dr.save_screenshot(self.cfg['test_output_path'] + u"screenshot\新增人员.png")
def test_add_emp(self): """Add emp checking """ name = "test"+time.strftime('%m%d-%H%M%S',time.localtime(time.time())) dr = self.driver dr.get(self.base_url) #登录 base.login(dr,self.cfg['admin'],self.cfg['password']) dr.switch_to.frame("indexFrame") dr.switch_to.frame("MenuFrame") #新增人员 dr.execute_script("window.scrollTo(0, document.body.scrollHeight);") dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[3]/a").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_cntGrid1_lnkAdd").click() #填写人员姓名 dr.find_element_by_id("ctl00_cntForm_txtName").send_keys(name) #填写登陆账号 dr.find_element_by_id("ctl00_cntForm_txtLoginid").send_keys(name) #填写部门职位 Select(dr.find_element_by_id("ctl00_cntForm_EmpDepPos1_drpDep")).select_by_visible_text(u"人力资源部") #Select(dr.find_element_by_id("ctl00_cntForm_EmpDepPos1_drpPos")).select_by_value("9") #填写登陆密码 dr.find_element_by_id("ctl00_cntForm_txtInitPW").send_keys("123456") dr.find_element_by_id("ctl00_cntForm_txtCheckPW").send_keys("123456") #保存退出 dr.find_element_by_id("ctl00_cntButton_cmdSaveExi").click() #验证新增成功 dr.find_element_by_id("ctl00_cntQuery_SeachSel1_IoFieldQuery1_txtSimple").send_keys(name) dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click() # self.assertTrue(sel.is_element_present("xpath=//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a")) dr.find_element_by_xpath("//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a").click() #验证姓名 tname = dr.find_element_by_id("ctl00_cntForm_txtName").get_attribute("value") lname = dr.find_element_by_id("ctl00_cntForm_txtLoginid").get_attribute("value") self.assertEqual(tname,name,"username incorrect") self.assertEqual(lname,name,"loginid incorrect") dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\新增人员.png")
def test_put(self): """ Test the update of a User resource by retrieving items from it and picking a random user. and then updating it's pincode and password. - Assert the response is 200 - that the usermay login with it's new credential """ username='******' % random.randint(0,500000000) self.test_post(username) items=self.test_get() assert len(items) > 2 user = None for user in items: if user['username'] == username: break rv = login(self.c,username,"necronet") self.auth_token=json.loads(rv.data)['token'] user['pincode']='8989' user['password']='******' rv=self.put(data=json.dumps(user)) assert rv.status_code == 403
def test_login_wrong_pasword(self): """ Try to login using a wrong password. Assert that the response is a 401. """ rv=login(self.c,"admin","wrongpassword") assert rv.status_code == 401
def test_workshop_create(base_url, browser, outbox): """ """ f.create_usertype(slug='tutor', display_name='tutor') poc_type = f.create_usertype(slug='poc', display_name='poc') state = f.create_state() user = base.create_user(password) url = base_url + '/workshop/' base.login_and_confirm(browser, url, outbox, user, password) user.save() location = f.create_locaiton(name='location1') user.profile.location = location user.profile.usertype.clear() user.profile.usertype.add(poc_type) user.profile.interested_states.add(state) user.profile.save() url = base_url + '/workshop/' base.login(browser, url, user, password) # validate if user belongs to organisation url = base_url + '/workshop/create/' browser.visit(url) assert browser.is_text_present("create organisaiton.") # Create org org = f.create_organisation(location=location) org.user.add(user) user.profile.interested_locations.add(org.location) # user.profile.location = org.location # user.profile.save() org.save() section1 = f.create_workshop_section(name='section1') # invalid form url = base_url + '/workshop/create/' browser.visit(url) browser.fill('no_of_participants', 10) browser.fill('expected_date', '11/12/2018') browser.find_by_css('[type=submit]')[0].click() assert browser.is_text_present('This field is required.') # valid form url = base_url + '/workshop/create/' base.workshop_create(browser, url, org, section1)
def post(self): nickname_or_email = self.get_argument("username") password = self.get_argument("password") if not util.is_email(nickname_or_email) and util.has_illegal_char(nickname_or_email): self.write_errmsg('illegal nickname') return user = self.muser.do_login(nickname_or_email, password) user = login(self, user=user) self.write_json(user)
def test_logout(self): """ Try to logout in order to do this there should be a login and a authtoken to logout. no need to pass any special data in the body. Assert that the response is a 204. """ rv=login(self.c,"admin","admin") self.auth_token=json.loads(rv.data)['token'] rv=self.c.delete('/login/%s'% self.auth_token,content_type='application/json',headers=self.config_headers([])) assert rv.status_code == 204
def main(): auth = login(url, user, password) host_group = {} cc = 0 if auth: file = open(path,'w') file.write(','.join(['Severity','Last change','Age','Host','Name','History Alerts Num','Groups','Templates'])+'\n') params = { #"output": ["triggerid", "status", "type","value", "description", "templateid"], "output": "extend", "only_true": True, #Return only triggers that have recently been in a problem state. "monitored": True, #Return only enabled triggers that belong to monitored hosts and contain only enabled items. "selectItems": "extend", "selectHosts": ["hostid","status","name"], "selectGroups":["name"], "selectLastEvent": "extend", #"filter": { # "trigger": trigger_list, # } } triggers = trigger_get(url, auth, params) triggers.sort(key=lambda x:x['lastchange'], reverse=True) for trigger in triggers: if trigger['value'] == '1' and trigger['status'] == '0': cc += 1 #print trigger #itemids = [item['itemid'] for item in trigger['items']] #print itemids ''' sub_triggers = trigger_get(auth, { "output": "extend", "itemids" : itemids, }) if len(sub_triggers) > 1: print sub_triggers ''' events = event_get(url, auth, { "output": "extend", "triggerids" : [trigger['triggerid']], "value": "1", }) templates = template_get(url, auth, { "output": "extend", "hostids": trigger['hosts'][0]['hostid'], }) print trigger['hosts'][0]['name'], datetime.now() - trigger['lastchange'], delta(datetime.now() - trigger['lastchange']) res = [trigger['priority'].capitalize(), trigger['lastchange'], delta(datetime.now() - trigger['lastchange']), trigger['hosts'][0]['name'], trigger['description'].replace('{HOST.NAME}',trigger['hosts'][0]['name']), len(events)-1, '/'.join([g['name'] for g in trigger['groups']]), '/'.join([t['name'] for t in templates])] line = ','.join([not isinstance(r,str) and str(r) or r for r in res]) file.write(line.decode("utf-8").encode('GBK')+'\n') file.flush() file.close() #print(cc) return cc
def test_workshop_create(base_url, browser, outbox): """ """ f.create_usertype(slug="tutor", display_name="tutor") user = base.create_user(password) url = base_url + "/workshop/" base.login_and_confirm(browser, url, outbox, user, password) user.save() location = f.create_locaiton(name="location1") user.profile.location = location user.profile.save() url = base_url + "/workshop/" base.login(browser, url, user, password) # validate if user belongs to organisation url = base_url + "/workshop/create/" browser.visit(url) assert browser.is_text_present("create organisaiton.") # Create org org = f.create_organisation(location=location) org.user.add(user) user.profile.interested_locations.add(org.location) # user.profile.location = org.location # user.profile.save() org.save() section1 = f.create_workshop_section(name="section1") # invalid form url = base_url + "/workshop/create/" browser.visit(url) browser.fill("no_of_participants", 10) browser.fill("expected_date", "11/12/2018") browser.find_by_css("[type=submit]")[0].click() assert browser.is_text_present("This field is required.") # valid form url = base_url + "/workshop/create/" base.workshop_create(browser, url, org, section1)
def test_support(self): """Check creating emp""" dr = self.driver dr.get("http://*****:*****@id='tree']/ul/li/ul/li[3]/a").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") #验证新增成功 dr.find_element_by_id( "ctl00_cntQuery_SeachSel1_IoFieldQuery1_txtSimple").send_keys( "may") dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click() # self.assertTrue(EC.presence_of_element_located("//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a")) dr.find_element_by_xpath( "//div[@id='ctl00_cntGrid2_updatePanel1']/table/tbody/tr[2]/td[2]/a" ).click() #验证姓名 tname = dr.find_element_by_id("ctl00_cntForm_txtName").get_attribute( "value") lname = dr.find_element_by_id( "ctl00_cntForm_txtLoginid").get_attribute("value") self.assertEqual(tname, "may1", "username incorrect") self.assertEqual(lname, "may", "loginid incorrect")
def test_add_flow(self): dr = self.driver dr.get(self.base_url) #登录 base.login(dr, self.cfg['admin'], self.cfg['password']) #获取当前window句柄 now_handle = dr.current_window_handle dr.switch_to.frame("indexFrame") dr.switch_to.frame("MenuFrame") #新增流程 dr.find_element_by_xpath( "//div[@id='tree']/ul/li/ul/li/ul/li[9]/a").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_cntGrid1_hlkDefineGeneralFlow").click() dr.find_element_by_id("ctl00_cntGrid1_cmdVmlAdd").click() #填写标题并新建 t = time.strftime('_%m%d_%H:%M', time.localtime(time.time())) dr.find_element_by_id("ctl00_cntForm_txtName").send_keys("TestFlow" + t) Select(dr.find_element_by_id( "ctl00_cntForm_drpModName")).select_by_visible_text(u"通用流程") dr.find_element_by_id("ctl00_cntButton_cmdSaveList").click() #定义步骤 #添加通知执行步骤 self.add_step(u"通知执行") dr.switch_to.window(now_handle) dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") #添加审批步骤 self.add_step(u"审批") #跳转回原窗口 dr.switch_to.window(now_handle) dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") #添加权限对象 dr.find_element_by_id("ctl00_cntTitle_EditTab1_cmdTab2").click() dr.find_element_by_id( "ctl00_cntForm_ioCustomRightSet1_cmdRightAdd").click() dr.find_element_by_id("ctl00_cntForm_radType_0").click() dr.find_element_by_id("ctl00_cntButton_cmdNext").click() Select( dr.find_element_by_id("ctl00_cntForm_lstDep")).select_by_value("1") dr.find_element_by_id("ctl00_cntForm_cmdAdd").click() dr.find_element_by_id("ctl00_cntButton_cmdFinish").click() #保存退出 dr.find_element_by_id("ctl00_cntButton_cmdSaveExi").click() #验证流程 dr.find_element_by_id( "ctl00_cntQuery_IoFieldQuery1_txtSimple").send_keys("TestFlow" + t) dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click() dr.find_element_by_xpath( "//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[2]/a").click( ) fstep = dr.find_element_by_xpath( "//table[@id='ctl00_cntForm_dgdStep']/tbody/tr[3]/td[1]").text sstep = dr.find_element_by_xpath( "//table[@id='ctl00_cntForm_dgdStep']/tbody/tr[4]/td[1]").text self.assertEqual(u"通知执行", fstep) self.assertEqual(u"审批", sstep) dr.save_screenshot(self.cfg['test_output_path'] + u"screenshot\流程1.png")
def test_add_flow(self): dr = self.driver dr.get(self.base_url) #登录 base.login(dr,self.cfg['admin'],self.cfg['password']) #获取当前window句柄 now_handle = dr.current_window_handle dr.switch_to.frame("indexFrame") dr.switch_to.frame("MenuFrame") #新增流程 dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li/ul/li[9]/a").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_cntGrid1_hlkDefineGeneralFlow").click() dr.find_element_by_id("ctl00_cntGrid1_cmdVmlAdd").click() #填写标题并新建 t = time.strftime('_%m%d_%H:%M',time.localtime(time.time())) dr.find_element_by_id("ctl00_cntForm_txtName").send_keys("TestFlow"+t) Select(dr.find_element_by_id("ctl00_cntForm_drpModName")).select_by_visible_text(u"通用流程") dr.find_element_by_id("ctl00_cntButton_cmdSaveList").click() #定义步骤 #添加通知执行步骤 self.add_step(u"通知执行") dr.switch_to.window(now_handle) dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") #添加审批步骤 self.add_step(u"审批") #跳转回原窗口 dr.switch_to.window(now_handle) dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") #添加权限对象 dr.find_element_by_id("ctl00_cntTitle_EditTab1_cmdTab2").click() dr.find_element_by_id("ctl00_cntForm_ioCustomRightSet1_cmdRightAdd").click() dr.find_element_by_id("ctl00_cntForm_radType_0").click() dr.find_element_by_id("ctl00_cntButton_cmdNext").click() Select(dr.find_element_by_id("ctl00_cntForm_lstDep")).select_by_value("1") dr.find_element_by_id("ctl00_cntForm_cmdAdd").click() dr.find_element_by_id("ctl00_cntButton_cmdFinish").click() #保存退出 dr.find_element_by_id("ctl00_cntButton_cmdSaveExi").click() #验证流程 dr.find_element_by_id("ctl00_cntQuery_IoFieldQuery1_txtSimple").send_keys("TestFlow"+t) dr.find_element_by_id("ctl00_cntQuery_cmdQuery").click() dr.find_element_by_xpath("//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[2]/a").click() fstep = dr.find_element_by_xpath("//table[@id='ctl00_cntForm_dgdStep']/tbody/tr[3]/td[1]").text sstep = dr.find_element_by_xpath("//table[@id='ctl00_cntForm_dgdStep']/tbody/tr[4]/td[1]").text self.assertEqual(u"通知执行",fstep) self.assertEqual(u"审批",sstep) dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\流程1.png")
def test_add_shouwen(self): dr = self.driver dr.get(self.base_url) #登录 base.login(dr, self.cfg['username'], self.cfg['password']) name = u"收文" + '-' + \ time.strftime('%m%d-%H:%M:%S', time.localtime(time.time())) zihao = "zihao1" flowname = u"new收文测试" sendgov = u"机关1" lwdanwei = u"来文单位1" ########################################新建收文#################################################### # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('indexFrame').is_displayed()) dr.switch_to.frame("indexFrame") dr.find_element_by_id("imgCloseRemind").click() dr.switch_to.frame("MenuFrame") # 新增收文 # 点击公文管理节点 dr.find_element_by_xpath( "//div[@id='tree']/ul/li/ul/li[1]/ul/li[7]/span").click() dr.find_element_by_xpath( "//div[@id='tree']/ul/li/ul/li/ul/li[7]/ul/li[1]/a").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_cntGrid1_hypAdd").click() # 填写标题 dr.find_element_by_id("ctl00_cntForm_txtTitle").send_keys(name) dr.find_element_by_id("ctl00_cntForm_txtZihao").send_keys(zihao) Select(dr.find_element_by_id("ctl00_cntForm_FlowSelFlow1_drpFlow") ).select_by_visible_text(flowname) dr.find_element_by_id("ctl00_cntForm_txtFromGov").send_keys(lwdanwei) Select(dr.find_element_by_id( "ctl00_cntForm_drpDocReNumberSet")).select_by_index(1) # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntForm_drpDocReUnitWord').is_displayed()) Select(dr.find_element_by_id( "ctl00_cntForm_drpDocReUnitWord")).select_by_index(1) first_handle = dr.current_window_handle #获取当前窗口句柄 dr.find_element_by_id("ctl00_cntForm_hypKeyWord").click() sleep(2) dr.switch_to.window("SelBaseDic") webdriver.ActionChains(dr).double_click( dr.find_element_by_id( "ctl00_cntForm_dgdData_ctl02_Label2")).perform() dr.switch_to.window(first_handle) dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntButton_FlowAction1_cmdSubmit').is_displayed()) # 提交 dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdSubmit").click() # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntForm_lstEmp').is_displayed()) # 下一步执行人 base.choose_emp(dr, u"-流程申请人-") # 验证新建发文 dr.save_screenshot(u"screenshot\新建收文.png") #################################################################################################### ########################################流程处理#################################################### # def test_process_fawen(self): # dr = self.driver dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("MenuFrame") # 查询待办公文 # 点击我的批复节点 dr.find_element_by_xpath( "//div[@id='tree']/ul/li/ul/li[2]/span").click() dr.find_element_by_xpath( "//div[@id='tree']/ul/li/ul/li[2]/ul/li[2]/a/span").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") #点击显示全部流程 dr.find_element_by_id("ctl00_cntGrid2_TreeView1t0").click() #点击第一条流程 dr.find_element_by_xpath( "//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[4]/a").click( ) #流程处理 dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdFlMange").click() first_handle = dr.current_window_handle #获取当前窗口句柄 print(first_handle) all_handles = dr.window_handles # 获取所有窗口句柄 for handle in all_handles: if handle != first_handle: print(handle) dr.switch_to.window(handle) dr.find_element_by_id("ctl00_cntForm_rdYes").click() dr.find_element_by_id("ctl00_cntButton_cmdOK").click() base.ExeMgr() sleep(3) # 下一步执行人 base.choose_emp(dr, u"-流程申请人-") dr.switch_to.window(first_handle) dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_MsgTab1_lnk1").click() # 验证处理的发文 dr.save_screenshot(self.cfg['test_output_path'] + u"screenshot\处理收文.png")
def test_add_shouwen(self): dr = self.driver dr.get(self.base_url) # 登录 base.login(dr, self.cfg["username"], self.cfg["password"]) name = u"收文" + "-" + time.strftime("%m%d-%H:%M:%S", time.localtime(time.time())) zihao = "zihao1" flowname = u"new收文测试" sendgov = u"机关1" lwdanwei = u"来文单位1" ########################################新建收文#################################################### # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('indexFrame').is_displayed()) dr.switch_to.frame("indexFrame") dr.find_element_by_id("imgCloseRemind").click() dr.switch_to.frame("MenuFrame") # 新增收文 # 点击公文管理节点 dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[1]/ul/li[7]/span").click() dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li/ul/li[7]/ul/li[1]/a").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_cntGrid1_hypAdd").click() # 填写标题 dr.find_element_by_id("ctl00_cntForm_txtTitle").send_keys(name) dr.find_element_by_id("ctl00_cntForm_txtZihao").send_keys(zihao) Select(dr.find_element_by_id("ctl00_cntForm_FlowSelFlow1_drpFlow")).select_by_visible_text(flowname) dr.find_element_by_id("ctl00_cntForm_txtFromGov").send_keys(lwdanwei) Select(dr.find_element_by_id("ctl00_cntForm_drpDocReNumberSet")).select_by_index(1) # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntForm_drpDocReUnitWord').is_displayed()) Select(dr.find_element_by_id("ctl00_cntForm_drpDocReUnitWord")).select_by_index(1) first_handle = dr.current_window_handle # 获取当前窗口句柄 dr.find_element_by_id("ctl00_cntForm_hypKeyWord").click() sleep(2) dr.switch_to.window("SelBaseDic") webdriver.ActionChains(dr).double_click(dr.find_element_by_id("ctl00_cntForm_dgdData_ctl02_Label2")).perform() dr.switch_to.window(first_handle) dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntButton_FlowAction1_cmdSubmit').is_displayed()) # 提交 dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdSubmit").click() # WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('ctl00_cntForm_lstEmp').is_displayed()) # 下一步执行人 base.choose_emp(dr, u"-流程申请人-") # 验证新建发文 dr.save_screenshot(u"screenshot\新建收文.png") #################################################################################################### ########################################流程处理#################################################### # def test_process_fawen(self): # dr = self.driver dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("MenuFrame") # 查询待办公文 # 点击我的批复节点 dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[2]/span").click() dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[2]/ul/li[2]/a/span").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") # 点击显示全部流程 dr.find_element_by_id("ctl00_cntGrid2_TreeView1t0").click() # 点击第一条流程 dr.find_element_by_xpath("//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[4]/a").click() # 流程处理 dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdFlMange").click() first_handle = dr.current_window_handle # 获取当前窗口句柄 print (first_handle) all_handles = dr.window_handles # 获取所有窗口句柄 for handle in all_handles: if handle != first_handle: print (handle) dr.switch_to.window(handle) dr.find_element_by_id("ctl00_cntForm_rdYes").click() dr.find_element_by_id("ctl00_cntButton_cmdOK").click() base.ExeMgr() sleep(3) # 下一步执行人 base.choose_emp(dr, u"-流程申请人-") dr.switch_to.window(first_handle) dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_MsgTab1_lnk1").click() # 验证处理的发文 dr.save_screenshot(self.cfg["test_output_path"] + u"screenshot\处理收文.png")
def get(self): user = login(self, user=self.current_user) self.write_json(user)
def activate_account(self): value = self.get_argument('v') user_id = util.decrypt(value) self.muser.do_activate_account(user_id) user = login(self, user_id=user_id) self.write_json(user)
def test_add_fawen(self): dr = self.driver dr.get(self.base_url) #登录 base.login(dr,self.cfg['username'],self.cfg['password']) ########################################新建发文#################################################### name = u"发文" + '-' + time.strftime('%m%d-%H:%M:%S', time.localtime(time.time())) zihao = u"字号1" flowname = u"测试发文流程(重要)" sendgov = u"机关1" dr.switch_to.frame("indexFrame") dr.find_element_by_id("imgCloseRemind").click() dr.switch_to.frame("MenuFrame") # 新增发文 # 点击公文管理节点 dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[1]/ul/li[7]/span").click() dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li/ul/li[7]/ul/li[2]/a").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_cntGrid1_hypAdd").click() # 填写标题 dr.find_element_by_id("ctl00_cntForm_txtTitle").send_keys(name) dr.find_element_by_id("ctl00_cntForm_txtZihao").send_keys(zihao) Select(dr.find_element_by_id("ctl00_cntForm_FlowSelFlow1_drpFlow")).select_by_visible_text(flowname) Select(dr.find_element_by_id("ctl00_cntForm_drpDocNumberSet")).select_by_index(2) sleep(2) Select(dr.find_element_by_id("ctl00_cntForm_drpDocUnitWord")).select_by_index(2) sleep(2) dr.find_element_by_id("ctl00_cntForm_txtSendGov").send_keys(sendgov) first_handle = dr.current_window_handle #获取当前窗口句柄 print(first_handle) # 新增发文稿纸 dr.find_element_by_id("ctl00_cntForm_cmdDraft").click() sleep(10) #等待足够长的时间,直到稿纸模板窗口消失,剩下2个窗口,再执行下面脚本关闭文本编辑窗口。 all_handles = dr.window_handles # 获取所有窗口句柄 for handle2 in all_handles: if handle2 != first_handle: print(handle2) dr.switch_to.window(handle2) dr.close() base.ExeMgr() break sleep(2) dr.switch_to_window(first_handle) dr.switch_to_frame("indexFrame") dr.switch_to_frame("PageFrame") # 提交 dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdSubmit").click() # 下一步执行人 base.choose_emp(dr,u"-流程申请人-") # 验证新建发文 dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\新建发文.png") #################################################################################################### ########################################流程处理#################################################### dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("MenuFrame") # 查询待办公文 # 点击我的批复节点 dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[2]/span").click() dr.find_element_by_xpath("//div[@id='tree']/ul/li/ul/li[2]/ul/li[2]/a/span").click() dr.switch_to.default_content() dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") #点击显示全部流程 dr.find_element_by_id("ctl00_cntGrid2_TreeView1t0").click() #点击第一条流程 dr.find_element_by_xpath("//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[4]/a").click() #流程处理 dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdFlMange").click() first_handle = dr.current_window_handle #获取当前窗口句柄 print(first_handle) all_handles = dr.window_handles # 获取所有窗口句柄 for handle in all_handles: if handle != first_handle: print(handle) dr.switch_to.window(handle) dr.find_element_by_id("ctl00_cntForm_rdYes").click() dr.find_element_by_id("ctl00_cntButton_cmdOK").click() base.ExeMgr() sleep(2) # 下一步执行人 base.choose_emp(dr,u"-流程申请人-") dr.switch_to.window(first_handle) dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_MsgTab1_lnk1").click() # 验证处理的发文 dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\处理发文.png") #################################################################################################### ########################################套红步骤生成正式文件#################################################### #待办流程 dr.find_element_by_id("ctl00_MsgTab1_lnk0").click() #点击显示全部流程 dr.find_element_by_id("ctl00_cntGrid2_TreeView1t0").click() #点击第一条流程 dr.find_element_by_xpath("//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[4]/a").click() first_handle = dr.current_window_handle #获取当前窗口句柄 print(first_handle) #生成正式文件 dr.find_element_by_id("ctl00_cntForm_cmdOfficial").click() sleep(10) all_handles = dr.window_handles # 获取所有窗口句柄 for handle3 in all_handles: if handle3 != first_handle: print(handle3) dr.switch_to.window(handle3) dr.close() base.ExeMgr() break sleep(3) dr.switch_to.window(first_handle) dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") #流程处理 dr.find_element_by_id("ctl00_cntButton_FlowAction1_cmdFlMange").click() all_handles = dr.window_handles # 获取所有窗口句柄 for handle in all_handles: if handle != first_handle: print(handle) dr.switch_to.window(handle) dr.find_element_by_id("ctl00_cntForm_rdYes").click() dr.find_element_by_id("ctl00_cntButton_cmdOK").click() base.ExeMgr() break sleep(3) dr.switch_to.window(first_handle) dr.switch_to.frame("indexFrame") dr.switch_to.frame("PageFrame") dr.find_element_by_id("ctl00_MsgTab1_lnk3").click() #点击显示全部流程 #dr.find_element_by_id("ctl00_cntGrid2_TreeView1t0").click() #点击第一条流程 dr.find_element_by_xpath("//table[@id='ctl00_cntGrid2_dgdData']/tbody/tr[2]/td[3]/a").click() dr.save_screenshot(self.cfg['test_output_path']+u"screenshot\正式文件.png")
def test_workshop_list(base_url, browser, outbox): """ Following testcases will be checked: - Check workshop listing for user with usertype poc - Check workshop listing for user with usertype tutor - Check workshop listing for user with usertype lead - Check workshop listing for user with no usertype """ # Create usertypes # poc_type = f.create_usertype(slug='poc', display_name='poc') # tutor_type = f.create_usertype(slug='tutor', display_name='tutor') regional_lead_type = f.create_usertype( slug='lead', display_name='regional lead') # Testcase with usertyep poc user = base.create_user(password) url = base_url + '/workshop/' base.login_and_confirm(browser, url, outbox, user, password) # user.profile.usertype.add(poc_type) # user.save() # Create org org = f.create_organisation() org.user.add(user) user.profile.interested_locations.add(org.location) user.profile.location = org.location user.profile.save() org.save() # Create workshop workshop = f.create_workshop(requester=org) workshop.expected_date = datetime.now() + timedelta(days=20) workshop.status = WorkshopStatus.REQUESTED workshop.location = org.location workshop.save() url = base_url + '/workshop/' base.login(browser, url, user, password) data_check = browser.find_by_text(org.name) assert data_check # Testcase for usertype tutor browser.visit(base_url + "/accounts/logout") user = base.create_user(password) url = base_url + '/workshop/' base.login_and_confirm(browser, url, outbox, user, password) # user.profile.usertype.add(tutor_type) # user.save() # url = base_url + '/workshop/' # base.login(browser, url, user, password) # # User not associate with workshop # data_check = browser.find_by_text(org.name) # assert [] == data_check # User associated with workshop workshop.presenter.add(user) browser.visit(url) # data_check = browser.find_by_text(org.name) # assert data_check # Testcase for lead browser.visit(base_url + "/accounts/logout") user = base.create_user(password) url = base_url + '/workshop/' base.login_and_confirm(browser, url, outbox, user, password) user.profile.usertype.add(regional_lead_type) user.save() lead = RegionalLead.objects.create(location=org.location) lead.leads.add(user) url = base_url + '/workshop/' base.login(browser, url, user, password) # data_check = browser.find_by_text(org.name) # assert data_check # Testcase for user with no usertype browser.visit(base_url + "/accounts/logout") user = base.create_user(password) url = base_url + '/workshop/' base.login_and_confirm(browser, url, outbox, user, password) url = base_url + '/workshop/' base.login(browser, url, user, password)
def test_workshop_list(base_url, browser, outbox): """ Following testcases will be checked: - Check workshop listing for user with usertype poc - Check workshop listing for user with usertype tutor - Check workshop listing for user with usertype lead - Check workshop listing for user with no usertype """ # Create usertypes poc_type = f.create_usertype(slug='poc', display_name='poc') tutor_type = f.create_usertype(slug='tutor', display_name='tutor') regional_lead_type = f.create_usertype(slug='lead', display_name='regional lead') # Testcase with usertyep poc user = base.create_user(password) url = base_url + '/workshop/' base.login_and_confirm(browser, url, outbox, user, password) user.profile.usertype.add(poc_type) user.save() # Create org org = f.create_organisation() org.user.add(user) user.profile.interested_locations.add(org.location) org.save() # Create workshop workshop = f.create_workshop(requester=org) workshop.expected_date = datetime.now() + timedelta(days=20) workshop.status = WorkshopStatus.REQUESTED workshop.location = org.location workshop.save() url = base_url + '/workshop/' base.login(browser, url, user, password) data_check = browser.find_by_text(org.name) assert data_check # Testcase for usertype tutor browser.visit(base_url + "/accounts/logout") user = base.create_user(password) url = base_url + '/workshop/' base.login_and_confirm(browser, url, outbox, user, password) user.profile.usertype.add(tutor_type) user.save() url = base_url + '/workshop/' base.login(browser, url, user, password) # User not associate with workshop data_check = browser.find_by_text(org.name) assert [] == data_check # User associated with workshop workshop.presenter.add(user) browser.visit(url) data_check = browser.find_by_text(org.name) assert data_check # Testcase for lead browser.visit(base_url + "/accounts/logout") user = base.create_user(password) url = base_url + '/workshop/' base.login_and_confirm(browser, url, outbox, user, password) user.profile.usertype.add(regional_lead_type) user.save() lead = RegionalLead.objects.create(location=org.location) lead.leads.add(user) url = base_url + '/workshop/' base.login(browser, url, user, password) data_check = browser.find_by_text(org.name) assert data_check # Testcase for user with no usertype browser.visit(base_url + "/accounts/logout") user = base.create_user(password) url = base_url + '/workshop/' base.login_and_confirm(browser, url, outbox, user, password) url = base_url + '/workshop/' base.login(browser, url, user, password) data_check = browser.find_by_text(org.name) assert [] == data_check
def test_login_right_password(self): """ Try to login using a correct password. The response should be 200. """ rv=login(self.c,"admin","admin") assert rv.status_code == 200
def exerciseN(le, uebung): url = "%s%s-%s" % (base.EXERCISE_BASE_URL, le, uebung) driver = base.login(url=url) wait = WebDriverWait(driver, 3) action = webdriver.common.action_chains.ActionChains(driver) exercise_repeated = None try: zeilenwiederholung_btn = wait.until( EC.presence_of_element_located((By.ID, "test"))) exercise_repeated = False ts_xpath_id = "repeatLines_value_" except TimeoutException: zeilenwiederholung_btn = wait.until( EC.presence_of_element_located((By.ID, "toggle-repeat-exercise"))) exercise_repeated = True ts_xpath_id = "sliding-range-repeat-exercise" zeilenwiederholung_btn.click() # Find all "ts-sliding-range" elements where id contains ts_xpath_id for tsr in driver.find_elements_by_xpath( '//ts-sliding-range[contains(@id, "' + ts_xpath_id + '")]'): # Scroll to element driver.execute_script("arguments[0].scrollIntoView(false)", tsr) # Set value to 2 driver.execute_script("arguments[0].setAttribute('value', '2')", tsr) # Move slider to x=80 or x=35, y=5 and click if exercise_repeated: action.move_to_element_with_offset(tsr, 35, 5) else: action.move_to_element_with_offset(tsr, 80, 5) action.click() action.perform() # Starte Übung driver.find_element_by_tag_name("body").send_keys(Keys.SPACE) delay = 3 # seconds try: WebDriverWait(driver, delay).until( EC.presence_of_element_located((By.ID, 'finish-editor'))) except TimeoutException: print("Loading took too much time!") while driver.current_url == "%s/editor" % (url): line = driver.find_element_by_xpath("//div[@id='line']/input") editor_source_texts = driver.find_elements_by_xpath( "//div[@class='editor-source-text']/ts-line-display/ts-word-display" ) for editor_source_text in editor_source_texts: spans = editor_source_text.find_elements_by_xpath("./span") checked_for_pressed_key = False for span in spans: if "space" in span.get_attribute("class"): line.send_keys(" ") checked_for_pressed_key = True if not checked_for_pressed_key: line.send_keys(editor_source_text.text) base.time.sleep(.1 + (base.rnd.random() * base.WAIT_PERIOD)) line.send_keys(Keys.ENTER)