def add_case(self, case_name: str, case_attribute: str = '私有', level_1_classify: str = '无分类', level_2_classify: str = None): """ 新增案件,新增成功后案件会自动打开 :param case_name: 案件名 :param case_attribute: 共享、私有 :param level_1_classify: 一级分类 :param level_2_classify: 二级分类 :return: None """ # 点击【新建】按钮 time.sleep(0.5) self.case_page.case_button(button_name='新建案件').click() time.sleep(0.5) add_case_window = api.level_2_window(self.browser) # 输入案件名 self.case_page.case_name_input_box(add_case_window).send_keys( case_name) # 选择案件属性 self.case_page.case_attribute_radio(add_case_window, case_attribute).click() # 选择案件分类 self.case_page.case_classify_drop_down_box(add_case_window).click() time.sleep(0.5) self.choose_case_classify(level_1_classify, level_2_classify) time.sleep(0.5) # 点击【新建】按钮 self.case_page.window_button(add_case_window, button_name='确定').click() time.sleep(0.5)
def close_user_window(self): """ 关闭用户管理窗口 :return: None """ user_manager_window = api.level_2_window(self.browser) self.menu_page.close_window_button(user_manager_window).click()
def close_password_window(self): """ 关闭修改密码窗口 :return: None """ password_window = api.level_2_window(self.browser) self.menu_page.password_window_button(password_window, '取消').click()
def restore_case(self): """ 案件回收站的案件进行还原 :return: None """ self.case_page.case_button('还原').click() prompt_window = api.level_2_window(self.browser) self.case_page.window_button(prompt_window, '确定').click()
def find_user_group(self, group_name): """ 查找用户组 :param group_name: 用户组名称 :return: 用户组元素对象 """ user_manager_window = api.level_2_window(self.browser) result = self.menu_page.find_group_by_name(user_manager_window, group_name) return result
def del_picture(self, picture_name): self.case_page.unfold_and_hide_button(folder_name='我的图片').click() time.sleep(0.5) picture_file = self.case_page.find_file_by_name(picture_name) picture_file.click() time.sleep(0.5) ActionChains(self.browser).context_click(picture_file).perform() self.case_page.file_context_menu('删除').click() time.sleep(0.5) prompt_window = api.level_2_window(self.browser) self.case_page.window_button(prompt_window, '确定').click()
def add_identify_opinion(self, **data): # 定位鉴定意见窗口 identify_opinion_window = api.level_2_window(self.browser) # 输入标题 title = self.tool_page.identify_opinion_input(identify_opinion_window, '标题') title.clear() title.send_keys(data.get('title')) # 输入页眉 page_header = self.tool_page.identify_opinion_input( identify_opinion_window, '页眉') page_header.clear() page_header.send_keys(data.get('page_header')) # 输入页脚 page_footer = self.tool_page.identify_opinion_input( identify_opinion_window, '页脚') page_footer.clear() page_footer.send_keys(data.get('page_footer')) time.sleep(1) # 切换到案件简介标签页进行输入 self.tool_page.identify_opinion_tab(identify_opinion_window, '案件简介').click() title_1 = self.tool_page.identify_opinion_input( identify_opinion_window, '一') title_1.clear() title_1.send_keys(data.get('title_1')) textarea_1 = self.tool_page.identify_opinion_textarea( identify_opinion_window) textarea_1.clear() textarea_1.send_keys(data.get('textarea_1')) time.sleep(1) # 切换到比对结果进行输入 self.tool_page.identify_opinion_tab(identify_opinion_window, '比对结果').click() title_3 = self.tool_page.identify_opinion_input( identify_opinion_window, '三') title_3.clear() title_3.send_keys(data.get('title_3')) textarea_3 = self.tool_page.identify_opinion_textarea( identify_opinion_window) textarea_3.clear() textarea_3.send_keys(data.get('textarea_3')) identifier = self.tool_page.identify_opinion_input( identify_opinion_window, '鉴定人') identifier.clear() identifier.send_keys(data.get('identifier')) identify_data = self.tool_page.identify_opinion_input( identify_opinion_window, '鉴定日期') identify_data.clear() identify_data.send_keys(data.get('identify_data')) time.sleep(1) self.tool_page.identify_opinion_button(identify_opinion_window, '保存').click() time.sleep(1)
def find_user(self, group_name, user_name): """ 查找指定用户组下面的指定用户 :param group_name: 用户组名称 :param user_name: 用户名称 :return: 用户元素对象 """ user_manager_window = api.level_2_window(self.browser) self.find_user_group(group_name).click() result = self.menu_page.find_user_by_name(user_manager_window, user_name) return result
def del_user(self, group_name, user_name): """ 删除指定用户组下面的指定用户 :param group_name: 用户组名称 :param user_name: 用户名称 :return: None """ user_manager_window = api.level_2_window(self.browser) self.find_user(group_name, user_name).click() self.menu_page.del_user_button(user_manager_window).click() level_3_window = api.level_3_window(self.browser) api.level_window_button(level_3_window, '确定').click()
def open_inspection_record(self): """ 打开检验记录窗口 :return: 检验记录窗口对象 """ # 点击报告按钮 self.click_tool_button('报告') # 点击打开检验记录 self.tool_page.report(report_type='检验记录').click() # 定位“检验记录”窗口 inspection_record_window = api.level_2_window(self.browser) return inspection_record_window
def add_folder(self, parent_folder_name, folder_name): """ 新增子文件夹 :param parent_folder_name: 父文件夹 :param folder_name: 子文件夹名称 :return: """ parent_folder = self.case_page.folder_name(parent_folder_name) self.context_menu_operate(parent_folder, '新建文件夹') add_folder_window = api.level_2_window(self.browser) self.case_page.folder_name_input(add_folder_window).send_keys( folder_name) self.case_page.window_button(add_folder_window, '确认').click()
def export_identify_opinion(self, file_path, window_name): """ 导出鉴定意见 :param file_path: 文件路径及文件名 :param window_name: 导出窗口标题 :return: None """ # 定位鉴定意见窗口 identify_opinion_window = api.level_2_window(self.browser) self.tool_page.identify_opinion_button(identify_opinion_window, '导出').click() api.export_file(file_path, window_name) time.sleep(5)
def del_user_group(self, group_name): """ 删除用户组 :param group_name: 用户组名称 :return: None """ user_manager_window = api.level_2_window(self.browser) self.menu_page.find_group_by_name(user_manager_window, group_name).click() time.sleep(0.5) self.menu_page.group_button(user_manager_window, group_name, 1).click() time.sleep(0.5) prompt_window = api.level_3_window(self.browser) self.menu_page.confirm_button(prompt_window).click()
def add_user_group(self, group_name): """ 新增用户组 :param group_name: 用户组名称 :return: None """ user_manager_window = api.level_2_window(self.browser) self.menu_page.add_user_group_button(user_manager_window).click() time.sleep(0.5) add_group_window = api.level_3_window(self.browser) self.menu_page.user_group_input(add_group_window).send_keys(group_name) time.sleep(0.5) self.menu_page.confirm_button(add_group_window).click()
def change_password(self, old_password, new_password, confirm_password): """ 修改密码 :param old_password: 旧密码 :param new_password: 新密码 :param confirm_password: 确认新密码 :return: None """ password_window = api.level_2_window(self.browser) self.menu_page.password_input(password_window, 0).send_keys(old_password) self.menu_page.password_input(password_window, 1).send_keys(new_password) self.menu_page.password_input(password_window, 2).send_keys(confirm_password) self.menu_page.password_window_button(password_window, '保存').click()
def complete_del_case(self, case_name): """ 回收站,彻底删除案件 :param case_name: :return: None """ # 执行删除操作 case = self.case_page.find_case_in_recycle(case_name) self.context_menu_operate(case, button_name='彻底删除') time.sleep(0.5) # 操作确认提示框点击【确定】 prompt_window = api.level_2_window(self.browser) self.case_page.window_button(prompt_window, '确定').click() time.sleep(2)
def rename_case(self, case_name, new_name): """ 案件重命名 :param case_name: 案件名 :param new_name: 新案件名 :return: None """ self.case_context_menu_operate(case_name, '修改案件') rename_window = api.level_2_window(self.browser) case_name_input = self.case_page.case_name_input_box(rename_window) case_name_input.clear() case_name_input.send_keys(new_name) time.sleep(0.5) self.case_page.window_button(rename_window, '确定').click()
def export_inspection_record(self, file_path, window_name): """ 导出检验记录 :param file_path: 文件保存路径及名称 :param window_name: 导出窗口名 :return: None """ # 定位检验记录窗口 inspection_record_window = api.level_2_window(self.browser) self.tool_page.inspection_record_button(inspection_record_window, '导出').click() self.click_inspection_record_button("导出") api.export_file(file_path, window_name) time.sleep(5)
def export_case_accept_record(self, case_name, file_path, window_name): """""" self.case_context_menu_operate(case_name, button_name='导出案件受理记录') self.click_material_drop_down_box() time.sleep(0.5) self.choose_folder([case_name, '检材']) time.sleep(0.5) self.click_sample_drop_down_box() time.sleep(0.5) self.choose_folder([case_name, '样本']) time.sleep(0.5) level_2_window = api.level_2_window(self.browser) api.level_window_button(level_2_window, '确认').click() api.export_file(file_path, window_name)
def del_all_tag(self, window_index=0): """ 全选标记进行删除 :param window_index: 语谱图窗口序号,从0开始 :return: None """ view_window = self.view_page.view_window(window_index) # 点击【全选】按钮 self.view_page.tag_check_box(view_window)[0].click() self.view_page.tag_operate_button(view_window, '批量删除').click() time.sleep(0.5) warning_window = api.level_2_window(self.browser) api.level_window_button(warning_window, '确定').click() time.sleep(0.5)
def add_user(self, group_name, user_name): """ 指定用户组下新增用户 :param group_name: 用户组名称 :param user_name: 用户名 :return: None """ user_manager_window = api.level_2_window(self.browser) # 点击选中用户组,在该用户组下新增用户 self.find_user_group(group_name).click() self.menu_page.add_user_button(user_manager_window).click() # 打开的新增用户窗口输入信息保存 add_user_window = api.level_3_window(self.browser) self.menu_page.user_name_input(add_user_window).send_keys(user_name) self.menu_page.confirm_button(add_user_window).click()
def allocate_case_to_group(self, case_name, group_name): """ 给用户组分发案件 :param case_name: 案件名称 :param group_name: 用户组名称 :return: None """ case = self.case_page.folder_name(case_name) self.context_menu_operate(case, '分发案件') allocate_window = api.level_2_window(self.browser) time.sleep(1) self.case_page.user_group_check_box(allocate_window, group_name).click() time.sleep(0.5) self.case_page.window_button(allocate_window, button_name='确定').click() time.sleep(1)
def add_file(self, window_index: int, sampling_rate='16K'): """ 新建文件 :param window_index: 视图窗口序号 :param sampling_rate: 采样率(只能是8K/16K/32K) :return: None """ view_window = self.view_page.view_window(window_index) # 点击【新建文件】按钮 self.view_page.add_file_button(view_window, button_index=0).click() choose_sampling_rate_window = api.level_2_window(self.browser) # 选择采样率 self.view_page.sampling_rate_radio_button(choose_sampling_rate_window, sampling_rate).click() time.sleep(0.5) api.level_window_button(choose_sampling_rate_window, button_name='确定').click()
def get_audio_info(self, audio_name, info_name: str): """ 获取音频信息 :param audio_name: 音频文件名 :param info_name: 信息字段名 :return: 音频信息 """ self.case_page.unfold_and_hide_case_button().click() self.case_page.unfold_and_hide_button(folder_name='检材').click() time.sleep(0.5) audio_file = self.case_page.find_file_by_name(audio_name) audio_file.click() time.sleep(0.5) ActionChains(self.browser).context_click(audio_file).perform() self.case_page.file_context_menu('文件详情').click() time.sleep(0.5) level_2_window = api.level_2_window(self.browser) info = self.case_page.audio_info(level_2_window, info_name) info_value = info.text return info_value
def add_file(self, folder_name, file_path, file_type='常见格式'): """ 给指定文件夹下上传音频文件 :param folder_name: 目标文件夹名称 :param file_path: :param file_type: :return: """ folder = self.case_page.folder_name(folder_name) self.context_menu_operate(folder, button_name='添加文件') level_2_window = api.level_2_window(self.browser) self.case_page.file_format_radio_button(level_2_window, file_type).click() self.case_page.window_button(level_2_window, "浏 览").click() api.import_file(file_path, '打开') time.sleep(1) if file_type != 'Wavf': self.case_page.window_button(level_2_window, '开始转换').click() time.sleep(2) self.case_page.window_button(level_2_window, "开始上传").click() time.sleep(2) self.case_page.window_button(level_2_window, "确 定").click() time.sleep(1)
def click_sample_drop_down_box(self): level_2_window = api.level_2_window(self.browser) self.case_page.sample_drop_down_box(level_2_window).click()
def close_level_2_window(self): """""" level_2_window = api.level_2_window(self.browser) api.close_window_button(level_2_window).click()
def click_material_drop_down_box(self): level_2_window = api.level_2_window(self.browser) self.case_page.material_drop_down_box(level_2_window).click()
def click_inspection_record_button(self, button_name): """点击检验记录窗口的【插入图片】【预览】【保存】【导出】按钮""" inspection_record_window = api.level_2_window(self.browser) self.tool_page.inspection_record_button(inspection_record_window, button_name).click()
def close_add_case_window(self): """关闭新增案件窗口""" add_case_window = api.level_2_window(self.browser) self.case_page.window_button(add_case_window, button_name='取消').click()