def click_application(browser, application_type_list, cache): for application_type in application_type_list: diction = cache.get(application_type) if diction: application_list = list(diction.keys()) executive_department_list = list(diction.values()) for t in list(set(executive_department_list)): # 刷卡 send_value(browser, (By.XPATH, head_button.刷卡), cache.get('patient_card') + '\n') # 判断弹出窗口是否正确弹出 if not is_text(browser, (By.XPATH, application_list_window.申请单列表), '申请单列表'): log.info('没有找到申请单列表窗口') return apply_messages = get_text( browser, (By.XPATH, application_list_window.申请单信息)) if application_type in ['处方单', '毒麻单', '草药']: on_click(browser, (By.XPATH, "//span[contains(text(),'全部药品')]")) date = time.strftime("%Y-%m-%d", time.localtime()) send_value(browser, (By.XPATH, application_list_window.开始时间), '2017-6-12') on_click(browser, (By.XPATH, "//button[contains(text(),'查询(Q)')]")) first_pos = 0 status = False #执行状态 for i in range(executive_department_list.count(t)): new_list = executive_department_list[first_pos:] next_pos = new_list.index(t) + 1 index = first_pos + new_list.index(t) print(application_list[index]) first_pos += next_pos locator = (By.XPATH, '//div[contains(text(),"' + application_list[index] + '")]') if application_list[index] in apply_messages: status = True focus(browser, locator) else: log.info('不存在%s申请单' % application_list[index]) if not status: on_click(browser, (By.XPATH, '//button[contains(text(),"取消(C)")]')) continue on_click(browser, (By.XPATH, "//button[contains(text(),'确定(S)')]")) time.sleep(0.5) send_value(browser, (By.XPATH, body.缴费方式), '\n') if get_prompt(browser): on_click(browser, (By.XPATH, "//button[contains(text(),'是')]")) microsoft_xps_document_writer(application_type) log.info('欠费记账脚本运行结束')
def test_cancel_loss_card(browser, test_case, cache): log.info('开始运行就诊卡取消挂失脚本') choice_loss(browser, test_case, cache) browser.find_element(By.XPATH, '//button[contains(text(),"取消挂失")]').click() # 判断患者卡列表窗口是否打开 locators = (By.XPATH, DivLocator.pai_list) if is_text(browser, locators, '患者卡列表'): if element_wait(browser, (By.XPATH, DivLocator.checkbox_pai)): browser.find_element(By.XPATH, DivLocator.checkbox_pai).click() browser.find_element(By.XPATH, ButtonLocator.cancel_loss).click() browser.find_element(By.XPATH, '//button[contains(text(),"是")]').click() else: log.info('就诊未挂失,不能取消挂失') else: log.info('取消挂失窗口无法正常打开!') log.info('就诊卡取消挂失脚本运行结束')
def test_regist_button(browser, test_case, cache): login.select_workstation(browser, '门诊挂号收费工作台', cache) #验证取号按钮功能 browser.find_element_by_xpath( '//button[contains(text(),"取 号(U)")]').click() locator = (By.XPATH, '//button[contains(text(),"取 号")]') if element_wait(browser, locator): log.info('取号按钮功能pass') else: log.info('取号按钮功能fail') browser.refresh() #验证退号按钮功能 browser.find_element_by_xpath( '//button[contains(text(),"退 号(X)")]').click() locator = (By.XPATH, div[4]['key']) if is_text(browser, locator, '门诊退号'): log.info("退号按钮功能pass") browser.find_element_by_xpath( '//button[contains(text(),"关闭")]').click() else: log.info("退号按钮功能fail") #验证重置按钮功能 dict = TestCaseCodeTable.patient_visit_card cardElement = \ browser.find_element_by_xpath(form[0]['key']).find_elements_by_tag_name('input')[3] cardElement.clear() cardElement.send_keys(test_case[dict['patient_card']] + '\n') browser.find_element_by_xpath('//button[contains(text(),"否")]').click() browser.find_element_by_xpath('//button[contains(text(),"重置")]').click() text = browser.find_element_by_xpath( form[0]['key']).find_elements_by_tag_name('input')[0].get_attribute( 'value') if text == '': log.info('重置按钮功能pass') else: log.info('重置按钮功能fail') #验证号别过滤及门诊时间过滤 result = 1 #全部 all_boxs = browser.find_elements_by_xpath('//label[contains(text(),"全部")]') for box in all_boxs: box.click() lists = outp_message(browser) if len(list(set(lists[0]))) > 1 and len(list(set(lists[1]))) > 1: # log.info('全部按钮验证pass') pass elif len(list(set(lists[0]))) == 1 and ('急诊' in lists[0]): # log.info('全部按钮验证pass') pass else: # log.info('全部按钮验证fail') result = 0 #全天,普通和急诊 browser.find_element_by_xpath('//label[contains(text(),"全天")]').click() browser.find_element_by_xpath('//label[contains(text(),"普通和急诊")]').click() lists = outp_message(browser) for outp_type in lists[0]: if outp_type in ('普通', '急诊'): # log.info('普通急诊按钮验证pass') pass else: # log.info('普通急诊按钮验证fail') result = 0 if list(set(lists[1])) in (['全天'], []): # log.info('全天按钮验证pass') pass else: # log.info('全天按钮验证fail') result = 0 #上午,专家 type_locator = '//label[contains(text(),"上午")]' date_locator = '//label[contains(text(),"专家")]' verify(browser, type_locator, date_locator, '上午', '专家', result) #下午,业余 type_locator = '//label[contains(text(),"下午")]' date_locator = '//label[contains(text(),"业余")]' verify(browser, type_locator, date_locator, '下午', '业余', result) #晚上,保健 type_locator = '//label[contains(text(),"晚上")]' date_locator = '//label[contains(text(),"保健")]' verify(browser, type_locator, date_locator, '晚上', '保健', result) if result: log.info('号源过滤按钮验证pass') else: log.info('号源过滤按钮验证fail')
def test_revise(browser, testcase, cache): log.info('开始运行号源调整脚本') # 判断门诊办公室工作站是否打开 login.select_workstation(browser, '门诊办公室工作站', cache) locator = (By.XPATH, '//div[contains(text(),"号源管理")]') on_click(browser, locator) locator = (By.LINK_TEXT, '号源调整') on_click(browser, locator) #输入日期 calendar_element = browser.find_element(By.XPATH, Input.date) js = "document.getElementsByTagName('input')[1].removeAttribute('readonly')" browser.execute_script(js) calendar_element.clear() calendar_element.send_keys(time.strftime("%Y-%m-%d", time.localtime())) js = "document.getElementsByTagName('input')[1].blur()" browser.execute_script(js) locator = (By.XPATH, Img.calendar_img) on_click(browser, locator) browser.find_element_by_xpath("//button[contains(text(),'今天')]").send_keys( Keys.ENTER) # 输入门诊科室 browser.find_element(By.XPATH, Input.belong_clinic_code).clear() browser.find_element(By.XPATH, Input.belong_clinic_code).send_keys( testcase[plus_sign['clinic_code']]) locator = (By.XPATH, '//div[contains(text(),"光谷院区")]') on_click(browser, locator) #输入医生 browser.find_element(By.XPATH, Input.doctor).clear() browser.find_element(By.XPATH, Input.doctor).send_keys( testcase[plus_sign['doctor_code']]) locator = (By.XPATH, '//div[contains(text(),"' + testcase[plus_sign['doctor_name']] + '")]') on_click(browser, locator) #选择专家号 locator = (By.XPATH, '//label[contains(text(),"专家")]') on_click(browser, locator) outp_time_dict = {'上午': 8, '下午': 19, '晚上': 30} #判断是否存在相同号源 special_element = browser.find_element(By.XPATH, Div.special_list).find_elements( By.TAG_NAME, 'tr') if len(special_element) > 1: log.info('存在相同号源') # print(browser.find_element_by_xpath(Div.special_list+'//td[8]').text) num = outp_time_dict[testcase[plus_sign['outp_time']]] locator = (By.XPATH, Div.special_list + '//td[' + str(num) + ']') on_click(browser, locator) reg_num = browser.find_element(By.XPATH, Div.special_list).find_elements( By.TAG_NAME, 'td')[num + 1].text #已挂数 appoint_num = browser.find_element(By.XPATH, Div.special_list).find_elements( By.TAG_NAME, 'td')[num + 4].text #预约数 #判断号源详情弹出窗是否弹出 locator = (By.XPATH, Div.special_detail) if is_text(browser, locator, '号源详情'): send_value(browser, (By.XPATH, Input.appoint_limit_no), str(int(appoint_num) + 1)) send_value(browser, (By.XPATH, Input.limit_no), str(int(reg_num) + 1)) locator = (By.XPATH, '//button[contains(text(),"保存")]') on_click(browser, locator) locator = (By.XPATH, '//button[contains(text(),"是")]') on_click(browser, locator) else: log.info('号源详情窗口未弹出') log.info('号源调整脚本运行结束')