Esempio n. 1
0
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')
Esempio n. 4
0
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('号源调整脚本运行结束')