2818 lines
		
	
	
		
			72 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			2818 lines
		
	
	
		
			72 KiB
		
	
	
	
		
			Python
		
	
	
	
| # -*- coding: utf-8 -*-
 | ||
| 
 | ||
| '''
 | ||
| 脚本说明:
 | ||
| 本脚本基于SELENIUM实现普康健康自动审核,目前已实现登录、获取指定案件数据和案件审核(包括赔付和拒付)
 | ||
| 作者:刘弼仁
 | ||
| 更新时间:2024-09-12
 | ||
| 备注:
 | ||
| 1、在PAGEOBJECT尚未拆解自动审核动作
 | ||
| '''
 | ||
| 
 | ||
| #导入模块
 | ||
| 
 | ||
| import re
 | ||
| 
 | ||
| import time
 | ||
| 
 | ||
| import json
 | ||
| 
 | ||
| from pageobject import PageObject
 | ||
| 
 | ||
| import os
 | ||
| 
 | ||
| import sys
 | ||
| 
 | ||
| sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
 | ||
| 
 | ||
| from utils.logger import Logger, fetch_exception
 | ||
| 
 | ||
| #抽取内容配置项
 | ||
| extractions = {
 | ||
| 
 | ||
| 	'永诚审核页面': [
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '赔案号',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[4]/div[1]/div/div/div'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '报案保单号',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[3]/div[2]/div'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '报案方式',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[1]/div[3]/div[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '复核人',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[1]/div[2]/div[5]/span[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人姓名',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[5]/div[1]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人证件类型',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[5]/div[2]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人证件号',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[5]/div[3]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人证件有效期起期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[5]/div[4]/div/div/div[1]/input[1]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人证件有效期止期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[5]/div[4]/div/div/div[1]/input[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人与主被保险人关系',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[6]/div[3]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '主被保险人姓名',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[7]/div[1]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '主被保险人证件类型',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[7]/div[2]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '主被保险人证件号',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[7]/div[3]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '主被保险人证件有效期起期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[7]/div[4]/div/div/div[1]/input[1]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '主被保险人证件有效期止期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[7]/div[4]/div/div/div[1]/input[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '领款人姓名',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[11]/div[1]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '领款人证件类型',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[11]/div[2]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '领款人证件号',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[11]/div[3]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '领款人证件有效期起期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[11]/div[4]/div/div/div[1]/input[1]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '领款人证件有效期止期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[11]/div[4]/div/div/div[1]/input[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '开户行',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[12]/div[2]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '银行账户',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[12]/div[1]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '联系电话',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[12]/div[3]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'field': '联系地址',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[12]/div[4]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'field': '出险地址',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[13]/div[2]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'table': '保单信息',
 | ||
| 
 | ||
| 			'table_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody',
 | ||
| 
 | ||
| 			'fields': [
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '保单号',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody/tr[index]/td[2]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '保险分公司',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody/tr[index]/td[6]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '出险人与主被保险人关系',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody/tr[index]/td[9]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '保障期',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody/tr[index]/td[10]'
 | ||
| 
 | ||
| 				}
 | ||
| 
 | ||
| 			]
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '票据提示',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[1]/div[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'table': '票据信息',
 | ||
| 
 | ||
| 			'table_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody',
 | ||
| 
 | ||
| 			'fields': [
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '票据序号',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[5]/div[2]/table/tbody/tr[index]/td[2]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '票据号',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[5]/div[2]/table/tbody/tr[index]/td[4]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '交款人',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[6]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '就诊类型',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[7]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '出险原因',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[8]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '医保标志',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[10]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '收款人',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[11]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '开具日期',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[12]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '诊断疾病',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[17]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '票据金额',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[18]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '合理金额',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[19]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '部分自费',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[20]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '全部自费',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[21]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '统筹金额',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[22]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '第三方赔付金额',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[24]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '不合理金额',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[23]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '关联责任',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[9]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '票据验真',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[25]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '票据备注',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[27]'
 | ||
| 
 | ||
| 				}
 | ||
| 
 | ||
| 			]
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '理算第一行保额',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/div[3]/div[3]/table/tbody/tr[1]/td[4]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '理算金额',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/form/div[1]/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '公账赔付金额',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/form/div[2]/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '个账赔付金额',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/form/div[3]/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '审核结论',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/form/div[1]/div/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		}
 | ||
| 
 | ||
| 	],
 | ||
| 
 | ||
| 	'瑞泰审核页面': [
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '赔案号',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[4]/div/div/div/div'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '报案保单号',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[3]/div[3]/div'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '报案方式',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[1]/div[3]/div[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '复核人',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[1]/div[2]/div[5]/span[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人姓名',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[5]/div[1]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人证件类型',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[5]/div[2]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人证件号',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[5]/div[3]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人证件有效期起期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[5]/div[4]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人证件有效期止期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[5]/div[4]/div/div/div/div[2]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '出险人与主被保险人关系',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[6]/div[3]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '主被保险人姓名',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[8]/div[1]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '主被保险人证件类型',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[8]/div[2]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '主被保险人证件号',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[8]/div[3]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '主被保险人证件有效期起期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[8]/div[4]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '主被保险人证件有效期止期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[8]/div[4]/div/div/div/div[2]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '领款人姓名',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[11]/div[1]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '领款人证件类型',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[11]/div[2]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '领款人证件号',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[11]/div[3]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '领款人证件有效期起期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[11]/div[4]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '领款人证件有效期止期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[11]/div[4]/div/div/div/div[2]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '开户行',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[12]/div[2]/div[1]/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '开户行分行',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[13]/div[2]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '开户行分行所在省市',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[13]/div[1]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '银行账户',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[12]/div[1]/div[1]/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '联系电话',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[12]/div[3]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'field': '联系地址',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[12]/div[4]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'field': '出险日期',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[7]/div[2]/div/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'field': '出险地址',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[7]/div[3]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'field': '出险类型',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[7]/div[1]/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'table': '保单信息',
 | ||
| 
 | ||
| 			'table_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody',
 | ||
| 
 | ||
| 			'fields': [
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '保单号',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody/tr[index]/td[2]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '保险分公司',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody/tr[index]/td[6]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '出险人与主被保险人关系',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody/tr[index]/td[9]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '保障期',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody/tr[index]/td[10]'
 | ||
| 
 | ||
| 				}
 | ||
| 
 | ||
| 			]
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '票据提示',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[1]/div[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'table': '票据信息',
 | ||
| 
 | ||
| 			'table_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody',
 | ||
| 
 | ||
| 			'fields': [
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '票据序号',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[2]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '票据号',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[4]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '交款人',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[8]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '就诊类型',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[9]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '医保标志',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[11]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '收款人',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[14]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '开具日期',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[15]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '诊断疾病',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[18]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '票据金额',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[19]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '合理金额',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[20]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '部分自费',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[21]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '全部自费',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[22]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '统筹金额',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[23]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '第三方赔付金额',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[25]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '不合理金额',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[24]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '关联责任',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[10]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '票据验真',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[6]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'field': '票据备注',
 | ||
| 
 | ||
| 					'field_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[26]'
 | ||
| 
 | ||
| 				}
 | ||
| 
 | ||
| 			]
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '理算第一行保额',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/div[3]/div[3]/table/tbody/tr[1]/td[4]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '理算金额',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/form/div/div[1]/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '公账赔付金额',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/form/div/div[2]/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '个账赔付金额',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/form/div/div[3]/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 			
 | ||
| 			'field': '审核结论',
 | ||
| 
 | ||
| 			'field_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/form/div[1]/div/div/div/div/div[1]/input'
 | ||
| 
 | ||
| 		}
 | ||
| 
 | ||
| 	]
 | ||
| 
 | ||
| }
 | ||
| 
 | ||
| #动作组配置项(固化为登录、赔案查询和赔案审核)
 | ||
| actions = {
 | ||
| 	
 | ||
| 	#登录运营管理平台动作组
 | ||
| 	'login': [
 | ||
| 
 | ||
| 		#在当前标签页打开普康运营管理平台链接
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'open_link',
 | ||
| 
 | ||
| 			'object': 'https://boss.pukangpay.com.cn/login'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#等待至标签页标题为普康运营管理平台
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'wait_until',
 | ||
| 
 | ||
| 			'expected_condition': 'browser_tab_title_is',
 | ||
| 
 | ||
| 			'content': '普康运营管理平台'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#点击切换邮箱验证按钮
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '切换邮箱验证按钮',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/form/div[4]/button'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#输入登录账号
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'input',
 | ||
| 
 | ||
| 			'object_name': '登录账号',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/form/div[2]/div/div/input'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#点击发送邮件验证码按钮
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '发送邮件验证码按钮',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/form/div[3]/div/button'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#输入邮箱验证码,目前通过飞书邮箱获取邮件验证码,但是不能同时获取多个
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'input',
 | ||
| 
 | ||
| 			'object_name': '邮件验证码',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/form/div[3]/div/div/input',
 | ||
| 
 | ||
| 			'content': 'execute: FeishuMail().get_verification_code()'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#点击登录按钮
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '登录按钮',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/form/button'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#等待至欢迎页面的面包屑为首页
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'wait_until',
 | ||
| 
 | ||
| 			'expected_condition': 'element_text_is',
 | ||
| 
 | ||
| 			'object_name': '欢迎页面的面包屑',
 | ||
| 
 | ||
| 			'object': '//*[@id="breadcrumb-container"]/span/span/span[1]/span',
 | ||
| 
 | ||
| 			'content': '首页'
 | ||
| 
 | ||
| 		}
 | ||
| 
 | ||
| 	],
 | ||
| 
 | ||
| 	'cases_query': [
 | ||
| 
 | ||
| 		#点击顶部菜单-新TPA
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '顶部菜单-新TPA',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div[2]/div/div[2]/ul/li[3]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#点击左侧菜单-综合查询
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '左侧菜单-综合查询',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div[1]/div[2]/div[1]/div/ul/div[4]/li/div'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#点击左侧菜单-综合查询-赔案查询
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '左侧菜单-综合查询-赔案查询',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div[1]/div[2]/div[1]/div/ul/div[4]/li/ul/div[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#等待至赔案查询页面的面包屑为赔案查询
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'wait_until',
 | ||
| 
 | ||
| 			'expected_condition': 'element_text_is',
 | ||
| 
 | ||
| 			'object_name': '赔案查询页面的面包屑',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div/div[1]/div[1]/span/span[3]/span[1]/span',
 | ||
| 
 | ||
| 			'content': '赔案查询'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#点击更多按钮
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '更多按钮',
 | ||
| 
 | ||
| 			'object': '//*[@id="indexPage"]/div/form[2]/div/div/div/button[1][contains(@class,"success")]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#输入保险分公司
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'input',
 | ||
| 
 | ||
| 			'object_name': '保险分公司',
 | ||
| 
 | ||
| 			'object': '//*[@id="indexPage"]/div/form[1]/div[12]/div/div/input[contains(@placeholder,"请输入保险分公司")]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#点击查询按钮
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '查询按钮',
 | ||
| 
 | ||
| 			'object': '//*[@id="indexPage"]/div/form[2]/div/div/div/button[2][contains(@class,"warning")]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#等待至查询表格行数不为0
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'wait_until',
 | ||
| 
 | ||
| 			'expected_condition': 'table_rows_is_not_zero',
 | ||
| 
 | ||
| 			'object_name': '查询表格',
 | ||
| 
 | ||
| 			'object': '(//*[@id="indexPage"]/div[3]/table/tbody)[1]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#点击最后分页按钮并等待至当前分页第一行唯一标识与上一分页第一行唯一标识不相同
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '最后分页按钮',
 | ||
| 
 | ||
| 			'object': '(//*[@id="indexPage"]/main/section/div/ul/li[last()])[1]',
 | ||
| 
 | ||
| 			'first_row_identifier_xpath': '//*[@id="indexPage"]/div[3]/table/tbody/tr[1]/td[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#重复执行任务至达到预期完成任务数
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'repeat',
 | ||
| 
 | ||
| 			'object_name': '点击查看按钮,打开审核页面以获取数据',
 | ||
| 
 | ||
| 			#行唯一标识
 | ||
| 			'row_identifier_xpath': '(//*[@id="indexPage"]/div[3]/table/tbody)[1]/tr[index]/td[2]',
 | ||
| 
 | ||
| 			'table_xpath': '(//*[@id="indexPage"]/div[3]/table/tbody)[1]',
 | ||
| 
 | ||
| 			'button_next_xpath': '(//*[@id="indexPage"]/main/section/div/button[1])[1]',
 | ||
| 
 | ||
| 			'actions': [
 | ||
| 
 | ||
| 				#判断当前环节,若为指定内容则跳过,否则终止后续动作
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'cognize',
 | ||
| 
 | ||
| 					'cognized_condition': 'text_is',
 | ||
| 
 | ||
| 					'object_name': '当前环节',
 | ||
| 
 | ||
| 					'object': '(//*[@id="indexPage"]/div[3]/table/tbody)[1]/tr[index]/td[7]',
 | ||
| 
 | ||
| 					#满足预期条件时执行动作
 | ||
| 					'meet': 'pass',
 | ||
| 
 | ||
| 					#不满足预期条件时执行动作
 | ||
| 					'otherwies': 'break'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#点击查看按钮并并切换至新标签页
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'click_and_switch',
 | ||
| 
 | ||
| 					'object_name': ['查看按钮', '赔案审核'],
 | ||
| 
 | ||
| 					'object': '//*[@id="indexPage"]/div[4]/div[2]/table/tbody/tr[index]/td[19]/div/button[1]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#等待至审核页面的面包屑为永诚审核页面
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'wait_until',
 | ||
| 
 | ||
| 					'expected_condition': 'element_text_is',
 | ||
| 
 | ||
| 					'object_name': '审核页面的面包屑',
 | ||
| 
 | ||
| 					'object': '//*[@id="app"]/div/div/div/div[1]/div[1]/span/span[3]/span[1]/span',
 | ||
| 
 | ||
| 					'content': '永诚审核页面'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#等待至审核页面的赔案号非空
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'wait_until',
 | ||
| 
 | ||
| 					'expected_condition': 'element_text_is_not',
 | ||
| 
 | ||
| 					'object_name': '审核页面的赔案号',
 | ||
| 
 | ||
| 					'object': '//*[@id="app"]/div/div/section/main/section[1]/form/div[4]/div[1]/div/div/div',
 | ||
| 
 | ||
| 					'content': ''
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#点击查看影像件按钮并切换至新标签页(影像件标签页)
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'click_and_switch',
 | ||
| 
 | ||
| 					'object_name': ['查看影像件按钮', '影像件'],
 | ||
| 
 | ||
| 					'object': '//*[@id="app"]/div/div/section/main/section[1]/div[1]/div[1]/div[1]/button[3]'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#等待至影像件页面中张数非指定内容
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'wait_until',
 | ||
| 
 | ||
| 					'expected_condition': 'element_text_is_not',
 | ||
| 
 | ||
| 					'object_name': '影像件页面中张数',
 | ||
| 
 | ||
| 					'object': '//*[@id="app"]/div/div/section/div/div[1]/div[1]/span[3]',
 | ||
| 
 | ||
| 					'content': '影像共计 0 张'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#重复执行点击发票影像件并抽取内容任务
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'repeat',
 | ||
| 
 | ||
| 					'object_name': '点击顶部菜单-发票,显示每一张影像件以获取数据',
 | ||
| 
 | ||
| 					'table_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]',
 | ||
| 
 | ||
| 					'row_identifier_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 					'actions': [
 | ||
| 
 | ||
| 						#点击发票影像件
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'click',
 | ||
| 
 | ||
| 							'object_name': '发票影像件',
 | ||
| 
 | ||
| 							'object': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 						},
 | ||
| 
 | ||
| 						#抽取内容
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'extract',
 | ||
| 
 | ||
| 							'extractions': [
 | ||
| 
 | ||
| 								{
 | ||
| 
 | ||
| 									'field': '票据影像件序号',
 | ||
| 
 | ||
| 									'field_xpath': '//*[@id="app"]/div/div/section/div/div[1]/div[1]/span[4]'
 | ||
| 
 | ||
| 								}
 | ||
| 
 | ||
| 							]
 | ||
| 
 | ||
| 						}
 | ||
| 
 | ||
| 					]
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#点击申请书标签
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'click',
 | ||
| 
 | ||
| 					'object_name': '申请书标签',
 | ||
| 
 | ||
| 					'object': '//*[@id="tab-3"]',
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#重复执行点击申请书影像件并抽取内容任务
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'repeat',
 | ||
| 
 | ||
| 					'object_name': '点击顶部菜单-申请书,显示每一张影像件以获取数据',
 | ||
| 
 | ||
| 					'table_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]',
 | ||
| 
 | ||
| 					'row_identifier_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 					'actions': [
 | ||
| 
 | ||
| 						#点击申请书影像件
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'click',
 | ||
| 
 | ||
| 							'object_name': '申请书影像件',
 | ||
| 
 | ||
| 							'object': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 						},
 | ||
| 
 | ||
| 						#抽取内容
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'extract',
 | ||
| 
 | ||
| 							'extractions': [
 | ||
| 
 | ||
| 								{
 | ||
| 
 | ||
| 									'field': '申请书影像件序号',
 | ||
| 
 | ||
| 									'field_xpath': '//*[@id="app"]/div/div/section/div/div[1]/div[1]/span[4]'
 | ||
| 
 | ||
| 								}
 | ||
| 
 | ||
| 							]
 | ||
| 
 | ||
| 						}
 | ||
| 
 | ||
| 					]
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#点击身份证标签
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'click',
 | ||
| 
 | ||
| 					'object_name': '身份证标签',
 | ||
| 
 | ||
| 					'object': '//*[@id="tab-4"]',
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#重复执行点击身份证影像件并抽取内容任务
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'repeat',
 | ||
| 
 | ||
| 					'object_name': '点击顶部菜单-身份证资料,显示每一张影像件以获取数据',
 | ||
| 
 | ||
| 					'table_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]',
 | ||
| 
 | ||
| 					'row_identifier_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 					'actions': [
 | ||
| 
 | ||
| 						#点击身份证影像件
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'click',
 | ||
| 
 | ||
| 							'object_name': '身份证影像件',
 | ||
| 
 | ||
| 							'object': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 						},
 | ||
| 
 | ||
| 						#抽取内容
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'extract',
 | ||
| 
 | ||
| 							'extractions': [
 | ||
| 
 | ||
| 								{
 | ||
| 
 | ||
| 									'field': '证件影像件类型',
 | ||
| 
 | ||
| 									'field_xpath': '//*[@id="app"]/div/div/section/div/div[1]/div[2]/div[1]/div/div[1]/input'
 | ||
| 
 | ||
| 								}
 | ||
| 
 | ||
| 							]
 | ||
| 
 | ||
| 						}
 | ||
| 
 | ||
| 					]
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#点击银行卡折标签
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'click',
 | ||
| 
 | ||
| 					'object_name': '银行卡折标签',
 | ||
| 
 | ||
| 					'object': '//*[@id="tab-5"]',
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#重复执行点击银行卡折影像件并抽取内容任务
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'repeat',
 | ||
| 
 | ||
| 					'object_name': '点击顶部菜单-其它,显示每一张影像件以获取数据',
 | ||
| 
 | ||
| 					'table_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]',
 | ||
| 
 | ||
| 					'row_identifier_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 					'actions': [
 | ||
| 
 | ||
| 						#点击银行卡折影像件
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'click',
 | ||
| 
 | ||
| 							'object_name': '银行卡折影像件',
 | ||
| 
 | ||
| 							'object': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 						},
 | ||
| 
 | ||
| 						#抽取内容
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'extract',
 | ||
| 
 | ||
| 							'extractions': [
 | ||
| 
 | ||
| 								{
 | ||
| 
 | ||
| 									'field': '银行卡折影像件序号',
 | ||
| 
 | ||
| 									'field_xpath': '//*[@id="app"]/div/div/section/div/div[1]/div[1]/span[4]'
 | ||
| 
 | ||
| 								}
 | ||
| 
 | ||
| 							]
 | ||
| 
 | ||
| 						}
 | ||
| 
 | ||
| 					]
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#点击未分类标签
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'click',
 | ||
| 
 | ||
| 					'object_name': '未分类标签',
 | ||
| 
 | ||
| 					'object': '//*[@id="tab-6"]',
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#重复执行点击未分类影像件并抽取内容任务
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'repeat',
 | ||
| 
 | ||
| 					'object_name': '点击顶部菜单-未分类,显示每一张影像件以获取数据',
 | ||
| 
 | ||
| 					'table_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]',
 | ||
| 
 | ||
| 					'row_identifier_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 					'actions': [
 | ||
| 
 | ||
| 						#点击未分类影像件
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'click',
 | ||
| 
 | ||
| 							'object_name': '未分类影像件',
 | ||
| 
 | ||
| 							'object': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 						},
 | ||
| 
 | ||
| 						#抽取内容
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'extract',
 | ||
| 
 | ||
| 							'extractions': [
 | ||
| 
 | ||
| 								{
 | ||
| 
 | ||
| 									'field': '未分类影像件序号',
 | ||
| 
 | ||
| 									'field_xpath': '//*[@id="app"]/div/div/section/div/div[1]/div[1]/span[4]'
 | ||
| 
 | ||
| 								}
 | ||
| 
 | ||
| 							]
 | ||
| 
 | ||
| 						}
 | ||
| 
 | ||
| 					]
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#关闭当前标签页并切换至上一标签页
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'close_and_switch',
 | ||
| 
 | ||
| 					'object_name': ['影像件', '审核页面']
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#抽取内容
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'extract'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'close_and_switch',
 | ||
| 
 | ||
| 					'object_name': ['审核页面', '赔案查询']
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'repeat_finish'
 | ||
| 
 | ||
| 				}
 | ||
| 
 | ||
| 			],
 | ||
| 
 | ||
| 			'first_row_identifier_xpath': '(//*[@id="indexPage"]/div[3]/table/tbody)[1]/tr[1]/td[2]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'finish',
 | ||
| 
 | ||
| 		}
 | ||
| 
 | ||
| 	],
 | ||
| 
 | ||
| 	'cases_audit': [
 | ||
| 
 | ||
| 		#点击顶部菜单“新TPA”
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '顶部菜单-新TPA',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div[2]/div/div[2]/ul/li[3]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#点击左侧菜单“理赔管理”
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '左侧菜单-理赔管理',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div[1]/div[2]/div[1]/div/ul/div[3]/li/div'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#点击左侧菜单“理赔审核管理”
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '左侧菜单-理赔管理-赔案审核管理',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div[1]/div[2]/div[1]/div/ul/div[3]/li/ul/div[6]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#等待至赔案审核管理页面的面包屑为赔案审核管理
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'wait_until',
 | ||
| 
 | ||
| 			'expected_condition': 'element_text_is',
 | ||
| 
 | ||
| 			'object_name': '赔案审核管理页面的面包屑',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div/div[1]/div[1]/span/span[3]/span[1]/span',
 | ||
| 
 | ||
| 			'content': '赔案审核管理'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#等待至查询表格行数不为0
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'wait_until',
 | ||
| 
 | ||
| 			'expected_condition': 'table_rows_is_not_zero',
 | ||
| 
 | ||
| 			'object_name': '查询表格',
 | ||
| 
 | ||
| 			'object': '(//*[@id="indexPage"]/div[3]/table/tbody)[1]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		#重复动作组
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'repeat',
 | ||
| 
 | ||
| 			'object_name': '自动审核',
 | ||
| 
 | ||
| 			'droplist_more_xpaths': ['//*[@id="indexPage"]/main/section/div/span[2]/div/div[1]/input', '/html/body/div[4]/div[1]/div[1]/ul/li[5]'],
 | ||
| 
 | ||
| 			'row_xpath': '//*[@id="indexPage"]/div[3]/table/tbody/tr[index]',
 | ||
| 
 | ||
| 			'row_identifier_xpath': '//*[@id="indexPage"]/div[4]/div[2]/table/tbody/tr[1]/td[4]',
 | ||
| 
 | ||
| 			'table_xpath': '(//*[@id="indexPage"]/div[3]/table/tbody)[1]',
 | ||
| 
 | ||
| 			'actions': [
 | ||
| 
 | ||
| 				#点击审核按钮并切换至审核页面
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'click_and_switch',
 | ||
| 
 | ||
| 					'object_name': ['审核按钮', '审核页面'],
 | ||
| 
 | ||
| 					'object': '//*[@id="indexPage"]/div[5]/div[2]/table/tbody/tr[index]/td[20]/div/button',
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#等待至审核页面的面包屑为永诚审核页面
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'wait_until',
 | ||
| 
 | ||
| 					'expected_condition': 'element_text_is',
 | ||
| 
 | ||
| 					'object_name': '审核页面的面包屑',
 | ||
| 
 | ||
| 					'object': '//*[@id="app"]/div/div/div/div[1]/div[1]/span/span[3]/span[1]/span'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#等待至审核页面中赔案号加载完成
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'wait_until',
 | ||
| 
 | ||
| 					'expected_condition': 'element_text_is_loaded',
 | ||
| 
 | ||
| 					'object_name': '赔案号'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#抽取保单信息和票据信息用于选择保单,并将不在保期内发票的不合理金额调整为与票据金额相同
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'extract'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#判断是否需要修改发票,若需要则点击修改信息按钮,遍历发票将需要修改的发票,点击修改按钮将不合理金额修改为和发票金额相同并点击确定按钮,点击保存按钮并点击确定按钮,否则跳过
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'cognize',
 | ||
| 
 | ||
| 					'cognized_condition': 'auto_audit'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'close_and_switch',
 | ||
| 
 | ||
| 					'object_name': ['审核页面', '赔案查询']
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'repeat_finish'
 | ||
| 
 | ||
| 				}
 | ||
| 
 | ||
| 			]
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'finish',
 | ||
| 
 | ||
| 		}
 | ||
| 
 | ||
| 	],
 | ||
| 
 | ||
| 	#适用于瑞泰(oldmutual-chnenergy.com,耆卫保险和国家能源合资),考虑审核规则中无需用到影像件相关数据,所以去掉查看影像件相关动作
 | ||
| 	'cases_audit_oldmutual_chnenergy': [
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '新TPA',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div[2]/div/div[2]/ul/li[3]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '理赔管理',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div[1]/div[2]/div[1]/div/ul/div[3]/li/div'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'click',
 | ||
| 
 | ||
| 			'object_name': '赔案审核管理',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div[1]/div[2]/div[1]/div/ul/div[3]/li/ul/div[7]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'wait_until',
 | ||
| 
 | ||
| 			'expected_condition': 'element_text_is',
 | ||
| 
 | ||
| 			'object_name': '赔案审核管理页面的面包屑',
 | ||
| 
 | ||
| 			'object': '//*[@id="app"]/div/div/div/div[1]/div[1]/span/span[3]/span[1]/span',
 | ||
| 
 | ||
| 			'content': '赔案审核管理'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'wait_until',
 | ||
| 
 | ||
| 			'expected_condition': 'table_rows_is_not_zero',
 | ||
| 
 | ||
| 			'object_name': '待审核赔案表格',
 | ||
| 
 | ||
| 			'object': '(//*[@id="indexPage"]/div[3]/table/tbody)[1]'
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'repeat',
 | ||
| 
 | ||
| 			'object_name': '自动审核',
 | ||
| 
 | ||
| 			'droplist_more_xpaths': ['//*[@id="indexPage"]/main/section/div/span[2]/div/div', '/html/body/div[4]/div[1]/div[1]/ul/li[5]'],
 | ||
| 
 | ||
| 			'row_xpath': '//*[@id="indexPage"]/div[3]/table/tbody/tr[index]',
 | ||
| 
 | ||
| 			'row_identifier_xpath': '//*[@id="indexPage"]/div[4]/div[2]/table/tbody/tr[1]/td[4]',
 | ||
| 
 | ||
| 			'table_xpath': '(//*[@id="indexPage"]/div[3]/table/tbody)[1]',
 | ||
| 
 | ||
| 			'actions': [
 | ||
| 
 | ||
| 				#点击审核按钮并切换至审核页面
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'click_and_switch',
 | ||
| 
 | ||
| 					'object_name': ['审核按钮', '审核页面'],
 | ||
| 
 | ||
| 					'object': '//*[@id="indexPage"]/div[5]/div[2]/table/tbody/tr[index]/td[20]/div/button',
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#等待至审核页面的面包屑为永诚审核页面
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'wait_until',
 | ||
| 
 | ||
| 					'expected_condition': 'element_text_is',
 | ||
| 
 | ||
| 					'object_name': '审核页面的面包屑',
 | ||
| 
 | ||
| 					'object': '//*[@id="app"]/div/div/div/div[1]/div[1]/span/span[3]/span[1]/span'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#等待至审核页面中赔案号加载完成
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'wait_until',
 | ||
| 
 | ||
| 					'expected_condition': 'element_text_is_loaded',
 | ||
| 
 | ||
| 					'object_name': '赔案号',
 | ||
| 
 | ||
| 					'object': '//*[@id="app"]/div/div/section/main/section[1]/form/div[4]/div/div/div/div'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#抽取保单信息和票据信息用于选择保单,并将不在保期内发票的不合理金额调整为与票据金额相同
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'extract'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				#判断是否需要修改发票,若需要则点击修改信息按钮,遍历发票将需要修改的发票,点击修改按钮将不合理金额修改为和发票金额相同并点击确定按钮,点击保存按钮并点击确定按钮,否则跳过
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'cognize',
 | ||
| 
 | ||
| 					'cognized_condition': 'auto_audit'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'close_and_switch',
 | ||
| 
 | ||
| 					'object_name': ['审核页面', '赔案查询']
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'repeat_finish'
 | ||
| 
 | ||
| 				}
 | ||
| 
 | ||
| 			]
 | ||
| 
 | ||
| 		},
 | ||
| 
 | ||
| 		{
 | ||
| 
 | ||
| 			'action_type': 'finish',
 | ||
| 
 | ||
| 		}
 | ||
| 
 | ||
| 	]
 | ||
| 
 | ||
| }
 | ||
| 
 | ||
| '''
 | ||
| 
 | ||
| 类说明:封装普康健康运营管理平台中相关页面和动作
 | ||
| 
 | ||
| '''
 | ||
| 
 | ||
| class PKRobot(PageObject):
 | ||
| 
 | ||
| 	#登录运营管理平台
 | ||
| 	@fetch_exception
 | ||
| 	def login(self, insurance):
 | ||
| 
 | ||
| 		logger.info('正在登录运营管理平台')
 | ||
| 
 | ||
| 		#根据保险总公司匹配登录账号
 | ||
| 		match insurance:
 | ||
| 
 | ||
| 			case '中银保险有限公司':
 | ||
| 
 | ||
| 				content = 'AutomationTech001'
 | ||
| 
 | ||
| 			case '永诚财产保险股份有限公司':
 | ||
| 
 | ||
| 				content = 'AutomationTech002'
 | ||
| 
 | ||
| 			case '瑞泰人寿保险有限公司':
 | ||
| 
 | ||
| 				content = 'AutomationTech003'
 | ||
| 			case default:
 | ||
| 
 | ||
| 				raise Exception('保险总公司未定义')
 | ||
| 
 | ||
| 		#获取登录动作组配置项
 | ||
| 		loggin_actions = actions.get('login')
 | ||
| 
 | ||
| 		for index, action in enumerate(loggin_actions):
 | ||
| 
 | ||
| 			#在登录动作组配置项中新增登录账号
 | ||
| 			if action.get('action_type') == 'input' and action.get('object_name') == '登录账号':
 | ||
| 
 | ||
| 				loggin_actions[index].update({'content': content})
 | ||
| 
 | ||
| 
 | ||
| 		assert self.translator(actions = loggin_actions) == 'success', '登录时发生异常,程序终止'
 | ||
| 
 | ||
| 		logger.info('登录成功')
 | ||
| 
 | ||
| 	#打开赔案查询获取赔案数据
 | ||
| 	@fetch_exception
 | ||
| 	def cases_query(self, expected_tasks, insurance_branch, expected_status):
 | ||
| 
 | ||
| 		#断定预期重复数数据类型为整数且大于等于1
 | ||
| 		assert isinstance(expected_tasks, int) and expected_tasks >= 1, 'expected_tasks data type must be int and greater than 0'
 | ||
| 
 | ||
| 		#获取赔案查询动作组配置项
 | ||
| 		cases_query_actions = actions.get('cases_query')
 | ||
| 		
 | ||
| 		#遍历动作组配置项
 | ||
| 		for index, action in enumerate(cases_query_actions):
 | ||
| 
 | ||
| 			if action.get('action_type') == 'input' and action.get('object_name') == '保险分公司':
 | ||
| 
 | ||
| 				#在赔案查询动作组配置项中新增保险分公司
 | ||
| 				cases_query_actions[index].update({'content': insurance_branch})
 | ||
| 
 | ||
| 			if action.get('action_type') == 'repeat' and isinstance(action.get('button_next_xpath'), str) and action.get('button_next_xpath') != '':
 | ||
| 
 | ||
| 				#修改预期完成任务数
 | ||
| 				cases_query_actions[index].update({'expected_tasks': expected_tasks})
 | ||
| 
 | ||
| 				for nested_index, nested_action in enumerate(cases_query_actions[index].get('actions')):
 | ||
| 
 | ||
| 					#修改预期完成任务数和指定当前环节(若赔案当前环节非指定当前环节则跳过)
 | ||
| 					if nested_action.get('action_type') == 'cognize' and nested_action.get('object_name') == '当前环节':
 | ||
| 
 | ||
| 						cases_query_actions[index]['actions'][nested_index].update({'content': expected_status})
 | ||
| 
 | ||
| 					#根据保险分公司匹配保险总公司和审核页面
 | ||
| 					if nested_action.get('action_type') == 'extract' and nested_action.get('extractions') is None:
 | ||
| 
 | ||
| 						match insurance_branch:
 | ||
| 
 | ||
| 							case condition if '中银保险有限公司' in insurance_branch or '永诚财产保险股份有限公司' in insurance_branch:
 | ||
| 
 | ||
| 								cases_query_actions[index]['actions'][nested_index].update({'extractions': extractions.get('永诚审核页面')})
 | ||
| 
 | ||
| 							case condition if '瑞泰人寿保险有限公司' in insurance_branch:
 | ||
| 
 | ||
| 								cases_query_actions[index]['actions'][nested_index].update({'extractions': extractions.get('瑞泰审核页面')})
 | ||
| 
 | ||
| 							case default:
 | ||
| 
 | ||
| 								raise Exception('保险分公司未定义')
 | ||
| 
 | ||
| 		self.login(insurance = insurance)
 | ||
| 
 | ||
| 		logger.info('正在打开赔案查询获取赔案数据')
 | ||
| 
 | ||
| 		#使用动作解释器打开赔案查询获取赔案数据
 | ||
| 		assert self.translator(actions = cases_query_actions), '获取赔案数据时发生异常'
 | ||
| 
 | ||
| 		logger.info('获取赔案数据成功')
 | ||
| 
 | ||
| 	#根据保险总公司自动审核赔案
 | ||
| 	def cases_audit(self, expected_index, expected_tasks, insurance):
 | ||
| 
 | ||
| 		#根据保险总公司匹配赔案审核动作组配置项
 | ||
| 		match insurance:
 | ||
| 
 | ||
| 			case '瑞泰人寿保险有限公司':
 | ||
| 
 | ||
| 				cases_audit_actions = actions.get('cases_audit_oldmutual_chnenergy')
 | ||
| 
 | ||
| 			case default:
 | ||
| 
 | ||
| 				cases_audit_actions = actions.get('cases_audit')
 | ||
| 
 | ||
| 		for index, action in enumerate(cases_audit_actions):
 | ||
| 
 | ||
| 			if action.get('action_type') == 'repeat':
 | ||
| 
 | ||
| 				#在赔案审核动作组配置项中新增预期索引
 | ||
| 				cases_audit_actions[index].update({'expected_index': expected_index})
 | ||
| 
 | ||
| 				#在赔案审核动作组配置项中新增预期重复数
 | ||
| 				cases_audit_actions[index].update({'expected_tasks': expected_tasks})
 | ||
| 
 | ||
| 				for nested_index, nested_action in enumerate(cases_audit_actions[index].get('actions')):
 | ||
| 
 | ||
| 					#在赔案审核动作组配置项中就等待动作组新增指定内容
 | ||
| 					if nested_action.get('action_type') == 'wait_until' and nested_action.get('object_name') == '审核页面的面包屑':
 | ||
| 
 | ||
| 						match insurance:
 | ||
| 
 | ||
| 							case '中银保险有限公司' | '永诚财产保险股份有限公司':
 | ||
| 
 | ||
| 								content = '永诚审核页面'
 | ||
| 
 | ||
| 							case '瑞泰人寿保险有限公司':
 | ||
| 
 | ||
| 								content = '瑞泰审核'
 | ||
| 
 | ||
| 							case default:
 | ||
| 
 | ||
| 								raise Exception('保险总公司未定义')
 | ||
| 
 | ||
| 						cases_audit_actions[index]['actions'][nested_index].update({'content': content})
 | ||
| 
 | ||
| 					#在赔案审核动作组配置项中就等待动作组新增指定内容
 | ||
| 					if nested_action.get('action_type') == 'wait_until' and nested_action.get('object_name') == '赔案号':
 | ||
| 
 | ||
| 						match insurance:
 | ||
| 
 | ||
| 							case '中银保险有限公司' | '永诚财产保险股份有限公司' | '瑞泰人寿保险有限公司':
 | ||
| 
 | ||
| 								#审核页面中赔案号XPATH
 | ||
| 								object_ = '//*[@id="app"]/div/div/section/main/section[1]/form/div[4]/div[1]/div/div/div'
 | ||
| 
 | ||
| 							case default:
 | ||
| 
 | ||
| 								raise Exception('保险总公司未定义')
 | ||
| 
 | ||
| 						cases_audit_actions[index]['actions'][nested_index].update({'object': object_})
 | ||
| 
 | ||
| 					#在赔案审核动作组配置项中就点击并切换至动作组配置项新增指定内容
 | ||
| 					if nested_action.get('action_type') == 'click_and_switch' and nested_action.get('object_name') == ['查看影像件按钮', '影像件']:
 | ||
| 
 | ||
| 						match insurance:
 | ||
| 
 | ||
| 							case '中银保险有限公司' | '永诚财产保险股份有限公司':
 | ||
| 
 | ||
| 								#查看影像件按钮XPATH
 | ||
| 								object_ = '//*[@id="app"]/div/div/section/main/section[1]/div[1]/div[1]/div[1]/button[4]'
 | ||
| 
 | ||
| 							case '瑞泰人寿保险有限公司':
 | ||
| 
 | ||
| 								#查看影像件按钮XPATH
 | ||
| 								object_ = '//*[@id="app"]/div/div/section/main/section[1]/div[1]/div[1]/div[1]/a[2]/button'
 | ||
| 
 | ||
| 							case default:
 | ||
| 
 | ||
| 								raise Exception('保险总公司未定义')
 | ||
| 
 | ||
| 						cases_audit_actions[index]['actions'][nested_index].update({'object': object_})
 | ||
| 
 | ||
| 					#在赔案审核动作组中就抽取内容新增抽取范围
 | ||
| 					if nested_action.get('action_type') == 'extract' and nested_action.get('extractions') is None:
 | ||
| 
 | ||
| 						match insurance:
 | ||
| 
 | ||
| 							case '中银保险有限公司' | '永诚财产保险股份有限公司':
 | ||
| 
 | ||
| 								extractions_ = extractions.get('永诚审核页面')
 | ||
| 
 | ||
| 							case '瑞泰人寿保险有限公司':
 | ||
| 
 | ||
| 								extractions_ = extractions.get('瑞泰审核页面')
 | ||
| 							case default:
 | ||
| 
 | ||
| 								raise Exception('保险总公司未定义')
 | ||
| 
 | ||
| 						cases_audit_actions[index]['actions'][nested_index].update({'extractions': extractions_})
 | ||
| 
 | ||
| 					#在赔案审核动作组中就普康自动审核新增响应配置项
 | ||
| 					#后续通过可配置化
 | ||
| 					if nested_action.get('action_type') == 'cognize' and nested_action.get('cognized_condition') == 'auto_audit':
 | ||
| 
 | ||
| 						match insurance:
 | ||
| 
 | ||
| 							case '中银保险有限公司':
 | ||
| 
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'insurance': insurance})
 | ||
| 
 | ||
| 								#字段:赔案号
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_case_number_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[4]/div[1]/div/div/div'})
 | ||
| 
 | ||
| 								#按钮:修改信息
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_modify_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[2]/button'})
 | ||
| 
 | ||
| 								#表格:票据
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'table_invoices_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody'})
 | ||
| 
 | ||
| 								#字段:票据表格中票据序号(行唯一标识)
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_invoice_identifier_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[4]'})
 | ||
| 
 | ||
| 								#字段:票据表格中合理金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_reasonable_amounts_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[19]'})
 | ||
| 
 | ||
| 								#字段:票据表格中部分自付金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_part_self_amounts_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[20]'})
 | ||
| 
 | ||
| 								#字段:票据表格中全部自付金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_all_self_amounts_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[21]'})								
 | ||
| 
 | ||
| 								#按钮:票据表格中修改
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_invoice_modify_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[29]/div/button'})
 | ||
| 								
 | ||
| 								#输入框:票据表格中票据部分自费金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_part_self_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[20]/div/div/div/input'})
 | ||
| 
 | ||
| 								#输入框:票据表格中票据全部自费金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_all_self_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[21]/div/div/div/input'})
 | ||
| 
 | ||
| 								#输入框:票据表格中票据不合理金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_unreasonable_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[23]/div/div/div/input'})
 | ||
| 
 | ||
| 								#输入框:票据表格中票据备注
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_remark_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[27]/div/div/textarea'})
 | ||
| 
 | ||
| 								#按钮:票据表格中确定
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_invoice_confirm_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[29]/div/button[1]'})
 | ||
| 								
 | ||
| 								#按钮:保存
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_save_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[1]/button'})
 | ||
| 
 | ||
| 								#按钮:确认修改
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_confirm_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[2]/button'})
 | ||
| 
 | ||
| 								#复选框:选择保单
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'checkbox_select_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody/tr[index]/td[1]/div/label'})
 | ||
| 
 | ||
| 								#提示:选择保单和理算成功提示
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'toast_select': '/html/body/div[5]/p'})
 | ||
| 
 | ||
| 								#文本:约定标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_stipulation_xpath': '//*[@id="specialTemplate"]/div/div/div[2]/div/form/div[1]'})
 | ||
| 
 | ||
| 								#按钮:关闭约定
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_close_stipulation_xpath': '//*[@id="specialTemplate"]/div/div/div[3]/div/button'})
 | ||
| 
 | ||
| 								#提示:选择保单和理算成功提示
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'toast_report': '/html/body/div[8]/p'})
 | ||
| 
 | ||
| 								#按钮:理算
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_adjust_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/button[1]'})
 | ||
| 
 | ||
| 								#字段:理算表格第一行保单保额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_insurance_amount_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/div[3]/div[3]/table/tbody/tr/td[4]/div'})
 | ||
| 
 | ||
| 								#表格:理算
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'table_adjustment_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/div[3]/div[3]/table/tbody'})
 | ||
| 
 | ||
| 								#文本:票据交款人与出险人不一致注意标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_caution_xpath': '/html/body/div/div/div[1]/div/span'})
 | ||
| 
 | ||
| 								#按钮:票据交款人与出险人不一致注意关闭
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_close_caution_xpath': '/html/body/div/div/div[3]/button[1]'})
 | ||
| 
 | ||
| 								#下拉菜单:赔付时理赔结论
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'droplist_pay_xpaths': ['//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/form/div[1]/div/div/div/div', '/html/body/div[4]/div[1]/div[1]/ul/li[1]']})
 | ||
| 
 | ||
| 								#下拉菜单:拒付是理赔结论
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'droplist_refuse_xpaths': ['//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/form/div[1]/div/div/div/div', '/html/body/div[last()]/div[1]/div[1]/ul/li[2]']})
 | ||
| 
 | ||
| 								#输入框:结论原因
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'textarea_refuse_remark_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/form/div[2]/div/div/div/div/textarea'})
 | ||
| 
 | ||
| 								#按钮:通过
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_audit_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[1]/button'})
 | ||
| 
 | ||
| 								#文本:不在保单保障期确认弹窗标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_without_assurance_xpath': '//*[@id="app"]/div/div/section/main/div[1]/div/div[1]/span'})
 | ||
| 
 | ||
| 								#按钮:不在保单保障期确认弹窗标中确认
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_confrim_without_assurance_xpath': '//*[@id="app"]/div/div/section/main/div[1]/div/div[3]/button[2]'})
 | ||
| 
 | ||
| 								#文本:提示标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_prompt_xpath': '//*[@id="errorMessage"]/div/div/div[1]/span'})
 | ||
| 
 | ||
| 								#按钮:关闭提示
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_close_prompt_xpath': '//*[@id="errorMessage"]/div/div/div[3]/div/button[1]'})
 | ||
| 
 | ||
| 								#文本:发票关联影像件
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_prompt_invoices_xpath': '/html/body/div[5]/div/div[1]/div/span'})
 | ||
| 
 | ||
| 								#抽取内容
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'extractions': extractions_})
 | ||
| 
 | ||
| 							case '永诚财产保险股份有限公司':
 | ||
| 
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'insurance': insurance})
 | ||
| 
 | ||
| 								#字段:赔案号
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_case_number_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[4]/div[1]/div/div/div'})								
 | ||
| 								
 | ||
| 								#按钮:修改信息
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_modify_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[2]/button'})
 | ||
| 
 | ||
| 								#表格:票据
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'table_invoices_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody'})
 | ||
| 
 | ||
| 								#字段:票据表格中票据序号(行唯一标识)
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_invoice_identifier_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[2]'})
 | ||
| 
 | ||
| 								#字段:票据表格中合理金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_reasonable_amounts_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[19]'})
 | ||
| 								
 | ||
| 								#字段:票据表格中部分自付金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_part_self_amounts_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[20]'})
 | ||
| 
 | ||
| 								#字段:票据表格中全部自付金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_all_self_amounts_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[21]'})								
 | ||
| 
 | ||
| 								#按钮:票据表格中修改
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_invoice_modify_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[28]/div/button'})
 | ||
| 								
 | ||
| 								#输入框:票据表格中票据部分自费金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_part_self_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[20]/div/div/div/input'})
 | ||
| 
 | ||
| 								#输入框:票据表格中票据全部自费金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_all_self_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[21]/div/div/div/input'})
 | ||
| 								#输入框:票据表格中票据不合理金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_unreasonable_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[23]/div/div/div/input'})
 | ||
| 
 | ||
| 								#输入框:票据表格中票据备注
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_remark_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[27]/div/div/textarea'})
 | ||
| 
 | ||
| 								#按钮:票据表格中确定
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_invoice_confirm_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[28]/div/button[1]'})
 | ||
| 
 | ||
| 								#按钮:保存
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_save_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[1]/button'})
 | ||
| 
 | ||
| 								#按钮:确认修改
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_confirm_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[2]/button'})
 | ||
| 
 | ||
| 								#复选框:选择保单
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'checkbox_select_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody/tr[index]/td[1]/div/label'})
 | ||
| 
 | ||
| 								#提示:选择保单和理算成功提示
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'toast_select': '/html/body/div[5]/p'})
 | ||
| 
 | ||
| 								#文本:约定标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_stipulation_xpath': '//*[@id="specialTemplate"]/div/div/div[2]/div/form/div[1]'})
 | ||
| 
 | ||
| 								#按钮:关闭约定
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_close_stipulation_xpath': '//*[@id="specialTemplate"]/div/div/div[3]/div/button'})
 | ||
| 
 | ||
| 								#按钮:报案
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_report_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/button[3]'})
 | ||
| 
 | ||
| 								#按钮:确定报案
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_report_confirm_xpath': '//*[@id="app"]/div/div/section/main/section[14]/div/div/div[3]/div/button[1]'})
 | ||
| 
 | ||
| 								#提示:选择保单和理算成功提示
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'toast_report': '/html/body/div[8]/p'})
 | ||
| 
 | ||
| 								#按钮:理算
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_adjust_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/button[1]'})
 | ||
| 								
 | ||
| 								#字段:理算表格第一行保单保额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_insurance_amount_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/div[3]/div[3]/table/tbody/tr/td[4]/div'})
 | ||
| 
 | ||
| 								#表格:理算
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'table_adjustment_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/div[3]/div[3]/table/tbody'})
 | ||
| 
 | ||
| 								#文本:票据交款人与出险人不一致注意标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_caution_xpath': '/html/body/div/div/div[1]/div/span'})
 | ||
| 
 | ||
| 								#按钮:票据交款人与出险人不一致注意关闭
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_close_caution_xpath': '/html/body/div/div/div[3]/button[1]'})
 | ||
| 
 | ||
| 								#下拉菜单:赔付时理赔结论
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'droplist_pay_xpaths': ['//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/form/div[1]/div/div/div/div', '/html/body/div[4]/div[1]/div[1]/ul/li[1]']})
 | ||
| 
 | ||
| 								#下拉菜单:拒付是理赔结论
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'droplist_refuse_xpaths': ['//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/form/div[1]/div/div/div/div', '/html/body/div[last()]/div[1]/div[1]/ul/li[2]']})
 | ||
| 
 | ||
| 								#输入框:结论原因
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'textarea_refuse_remark_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/form/div[2]/div/div/div/div/textarea'})
 | ||
| 
 | ||
| 								#按钮:通过
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_audit_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[1]/button[2]'})
 | ||
| 
 | ||
| 								#文本:不在保单保障期确认弹窗标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_without_assurance_xpath': '//*[@id="app"]/div/div/section/main/div[1]/div/div[1]/span'})
 | ||
| 
 | ||
| 								#按钮:不在保单保障期确认弹窗标中确认
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_confrim_without_assurance_xpath': '//*[@id="app"]/div/div/section/main/div[1]/div/div[3]/button[2]'})
 | ||
| 
 | ||
| 								#文本:提示标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_prompt_xpath': '//*[@id="errorMessage"]/div/div/div[1]/span'})
 | ||
| 
 | ||
| 								#按钮:关闭提示
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_close_prompt_xpath': '//*[@id="errorMessage"]/div/div/div[3]/div/button[1]'})
 | ||
| 
 | ||
| 								#提示:审核成功提示
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'toast_audit': '/html/body/div[6]/p'})
 | ||
| 
 | ||
| 								#抽取内容
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'extractions': extractions_})								
 | ||
| 
 | ||
| 							case '瑞泰人寿保险有限公司':
 | ||
| 
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'insurance': insurance})
 | ||
| 
 | ||
| 								#表格:保单
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'table_slips_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody'})		
 | ||
| 
 | ||
| 								#字段:赔案号
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_case_number_xpath': '//*[@id="app"]/div/div/section/main/section[1]/form/div[4]/div[1]/div/div/div'})								
 | ||
| 								
 | ||
| 								#按钮:修改信息
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_modify_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[2]/button'})
 | ||
| 
 | ||
| 								#选择:修改原因
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'droplist_modify_xpath': ['//*[@id="app"]/div/div/section/main/section[5]/div/div/div[2]/div/form/div[1]/div/div/div/input', '/html/body/div[5]/div[1]/div/div[1]/ul/li[1]', '/html/body/div[5]/div[1]/div[2]/div[1]/ul/li[1]']})
 | ||
| 
 | ||
| 								#输入框:修改原因
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'textarea_modify_xpath': '//*[@id="app"]/div/div/section/main/section[5]/div/div/div[2]/div/form/div[2]/div/div/textarea'})
 | ||
| 
 | ||
| 								#按钮:确定修改
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_modification_confirm_xpath': '//*[@id="app"]/div/div/section/main/section[5]/div/div/div[3]/div/button[1]'})
 | ||
| 
 | ||
| 								#表格:票据
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'table_invoices_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody'})
 | ||
| 
 | ||
| 								#字段:票据表格中票据序号(行唯一标识)
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_invoice_identifier_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[2]'})
 | ||
| 
 | ||
| 								#字段:票据表格中合理金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_reasonable_amounts_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[20]'})
 | ||
| 
 | ||
| 								#字段:票据表格中部分自付金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_part_self_amounts_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[21]'})
 | ||
| 
 | ||
| 								#字段:票据表格中全部自付金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'field_all_self_amounts_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[22]'})								
 | ||
| 
 | ||
| 								#按钮:票据表格中修改
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_invoice_modify_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[30]/div/button'})
 | ||
| 
 | ||
| 								#输入框:票据表格中票据部分自费金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_part_self_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[21]/div/div/div/input'})
 | ||
| 
 | ||
| 								#输入框:票据表格中票据全部自费金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_all_self_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[22]/div/div/div/input'})
 | ||
| 
 | ||
| 								#输入框:票据表格中票据不合理金额
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_unreasonable_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[24]/div/div/div/input'})
 | ||
| 
 | ||
| 								#输入框:票据表格中票据备注
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'input_invoice_remark_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[26]/div/div/textarea'})
 | ||
| 
 | ||
| 								#按钮:票据表格中确定
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_invoice_confirm_xpath': '//*[@id="pane-first"]/div/div[3]/table/tbody/tr[index]/td[30]/div/button[1]'})
 | ||
| 
 | ||
| 								#按钮:保存
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_save_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[1]/button'})
 | ||
| 
 | ||
| 								#按钮:确认修改
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_confirm_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[2]/button'})
 | ||
| 
 | ||
| 								#复选框:选择保单
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'checkbox_select_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[4]/div[3]/table/tbody/tr[index]/td[1]/div/label'})
 | ||
| 
 | ||
| 								#提示:选择保单和理算成功提示
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'toast_select': '/html/body/div[5]/p'})
 | ||
| 
 | ||
| 								#文本:约定标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_stipulation_xpath': '//*[@id="specialTemplate"]/div/div/div[2]/div/form/div[1]'})
 | ||
| 
 | ||
| 								#按钮:关闭约定
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_close_stipulation_xpath': '//*[@id="specialTemplate"]/div/div/div[3]/div/button'})
 | ||
| 								
 | ||
| 								#按钮:理算
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_adjust_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/button[1]'})
 | ||
| 								
 | ||
| 								#字段:理算表格第一行保单保额
 | ||
| 								#cases_audit_actions[index]['actions'][nested_index].update({'field_insurance_amount_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/div[3]/div[3]/table/tbody/tr/td[4]/div'})
 | ||
| 
 | ||
| 								#表格:理算
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'table_adjustment_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[6]/div[3]/div[3]/table/tbody'})
 | ||
| 
 | ||
| 								#文本:票据交款人与出险人不一致注意标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_caution_xpath': '/html/body/div/div/div[1]/div/span'})
 | ||
| 
 | ||
| 								#按钮:票据交款人与出险人不一致注意关闭
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_close_caution_xpath': '/html/body/div/div/div[3]/button[1]'})
 | ||
| 
 | ||
| 								#下拉菜单:赔付时理赔结论
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'droplist_pay_xpaths': ['//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/form/div[1]/div/div/div/div', '/html/body/div[4]/div[1]/div[1]/ul/li[1]']})
 | ||
| 
 | ||
| 								#下拉菜单:拒付是理赔结论
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'droplist_refuse_xpaths': ['//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/form/div[1]/div/div/div/div', '/html/body/div[last()]/div[1]/div[1]/ul/li[2]']})
 | ||
| 
 | ||
| 								#输入框:结论原因
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'textarea_refuse_remark_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/form/div[2]/div/div/div/div/textarea'})
 | ||
| 
 | ||
| 								#按钮:通过
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_audit_xpath': '//*[@id="app"]/div/div/section/main/section[1]/div[5]/div[8]/p/span[1]/button[2]'})
 | ||
| 
 | ||
| 								#文本:不在保单保障期确认弹窗标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_without_assurance_xpath': '//*[@id="app"]/div/div/section/main/div[1]/div/div[1]/span'})
 | ||
| 
 | ||
| 								#按钮:不在保单保障期确认弹窗标中确认
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_confrim_without_assurance_xpath': '//*[@id="app"]/div/div/section/main/div[1]/div/div[3]/button[2]'})
 | ||
| 
 | ||
| 								#文本:提示标题
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'text_prompt_xpath': '//*[@id="errorMessage"]/div/div/div[1]/span'})
 | ||
| 
 | ||
| 								#按钮:关闭提示
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'button_close_prompt_xpath': '//*[@id="errorMessage"]/div/div/div[3]/div/button[1]'})
 | ||
| 
 | ||
| 								#提示:审核成功提示
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'toast_audit': '/html/body/div[6]/p'})
 | ||
| 
 | ||
| 								#抽取内容
 | ||
| 								cases_audit_actions[index]['actions'][nested_index].update({'extractions': extractions_})
 | ||
| 
 | ||
| 							case default:
 | ||
| 
 | ||
| 								raise Exception('保险总公司未定义')
 | ||
| 
 | ||
| 		self.login(insurance = insurance)
 | ||
| 
 | ||
| 		logger.info('正在打开赔案审核管理审核')
 | ||
| 
 | ||
| 		#使用动作解释器打开赔案审核管理审核
 | ||
| 		assert self.translator(actions = cases_audit_actions), '自动审核时发生异常'	
 | ||
| 
 | ||
| 		logger.info('自动审核成功')
 | ||
| 
 | ||
| '''
 | ||
| 
 | ||
| 程序说明:启动普康健康机器人
 | ||
| 
 | ||
| '''
 | ||
| 
 | ||
| if __name__ == '__main__':
 | ||
| 
 | ||
| 	#创建日志记录器
 | ||
| 	logger = Logger(logger_name = 'audit_robot').get_logger()
 | ||
| 
 | ||
| 	try:
 | ||
| 
 | ||
| 		#创建普康健康机器人
 | ||
| 		robot = PKRobot()
 | ||
| 
 | ||
| 		match input('请选择作业类型(1获取中银保赔案数据,2自动审核中银保赔案,3获取永诚赔案数据,4自动审核永诚赔案,6自动审核瑞泰赔案):'):
 | ||
| 
 | ||
| 			#获取中银保赔案数据
 | ||
| 			case '1':
 | ||
| 
 | ||
| 				match input('请选择保险分公司(1中银保险有限公司广州分公司):'):
 | ||
| 
 | ||
| 					case '1':
 | ||
| 
 | ||
| 						expected_insurance_branch = '中银保险有限公司广州分公司'
 | ||
| 
 | ||
| 					case default:
 | ||
| 
 | ||
| 						logger.info('所输入保险分公司未定义,脚本终止')
 | ||
| 
 | ||
| 				expected_tasks = int(input('请输入预期完成任务数:'))
 | ||
| 
 | ||
| 				robot.cases_query(expected_tasks = expected_tasks, expected_insurance_branch = expected_insurance_branch, expected_status = '推送')
 | ||
| 
 | ||
| 			#自动审核中银保赔案
 | ||
| 			case '2':
 | ||
| 
 | ||
| 				expected_index = int(input('请输入预期索引:'))
 | ||
| 
 | ||
| 				robot.cases_audit(expected_index = expected_index, expected_tasks = 200, insurance = '中银保险有限公司')
 | ||
| 
 | ||
| 			#获取永诚赔案数据
 | ||
| 			case '3':
 | ||
| 
 | ||
| 				match input('请选择保险分公司(1永诚财产保险股份有限公司黑龙江分公司):'):
 | ||
| 
 | ||
| 					case '1':
 | ||
| 
 | ||
| 						expected_insurance_branch = '永诚财产保险股份有限公司黑龙江分公司'
 | ||
| 
 | ||
| 					case default:
 | ||
| 
 | ||
| 						logger.info('所输入保险分公司未定义,脚本终止')
 | ||
| 
 | ||
| 				expected_tasks = int(input('请输入预期完成任务数:'))
 | ||
| 
 | ||
| 				robot.cases_query(expected_tasks = expected_tasks, expected_insurance_branch = expected_insurance_branch, expected_status = '推送')
 | ||
| 
 | ||
| 			#自动审核永诚赔案
 | ||
| 			case '4':
 | ||
| 
 | ||
| 				expected_index = int(input('请输入预期索引:'))
 | ||
| 
 | ||
| 				robot.cases_audit(expected_index = expected_index, expected_tasks = 200, insurance = '永诚财产保险股份有限公司')				
 | ||
| 
 | ||
| 			#自动审核瑞泰赔案
 | ||
| 			case '6':
 | ||
| 
 | ||
| 				expected_index = int(input('请输入预期索引:'))
 | ||
| 
 | ||
| 				robot.cases_audit(expected_index = expected_index, expected_tasks = 200, insurance = '瑞泰人寿保险有限公司')				
 | ||
| 
 | ||
| 			case default:
 | ||
| 
 | ||
| 				logger.info('所输入作业类型未定义,脚本终止')
 | ||
| 
 | ||
| 	except Exception as e:
 | ||
| 
 | ||
| 		print(e)
 | ||
| 
 | ||
| 		logger.info('发生异常,脚本终止')
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| '''
 | ||
| 
 | ||
| 				#点击查看影像件按钮并切换至影像件
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'click_and_switch',
 | ||
| 
 | ||
| 					'object_name': ['查看影像件按钮', '影像件']
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'wait_until',
 | ||
| 
 | ||
| 					'expected_condition': 'element_text_is_not',
 | ||
| 
 | ||
| 					'object_name': '影像件页面中张数',
 | ||
| 
 | ||
| 					'object': '//*[@id="app"]/div/div/section/div/div[1]/div[1]/span[3]',
 | ||
| 
 | ||
| 					'content': '影像共计 0 张'
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'repeat',
 | ||
| 
 | ||
| 					'object_name': '点击顶部菜单-发票,显示每一张影像件以获取数据',
 | ||
| 
 | ||
| 					'table_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]',
 | ||
| 
 | ||
| 					'row_identifier_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 					'actions': [
 | ||
| 
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'click',
 | ||
| 
 | ||
| 							'object_name': '发票影像件',
 | ||
| 
 | ||
| 							'object': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]'
 | ||
| 
 | ||
| 						},
 | ||
| 
 | ||
| 						{
 | ||
| 
 | ||
| 
 | ||
| 							'action_type': 'extract',
 | ||
| 
 | ||
| 							'extractions': [
 | ||
| 
 | ||
| 								{
 | ||
| 
 | ||
| 									'field': '票据影像件序号',
 | ||
| 
 | ||
| 									'field_xpath': '//*[@id="app"]/div/div/section/div/div[1]/div[1]/span[4]'
 | ||
| 
 | ||
| 								}
 | ||
| 
 | ||
| 							]
 | ||
| 
 | ||
| 						}
 | ||
| 
 | ||
| 					]
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 
 | ||
| 					'action_type': 'click',
 | ||
| 
 | ||
| 					'object_name': '申请书标签',
 | ||
| 
 | ||
| 					'object': '//*[@id="tab-3"]',
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 
 | ||
| 					'action_type': 'repeat',
 | ||
| 
 | ||
| 					'object_name': '点击顶部菜单-申请书,显示每一张影像件以获取数据',
 | ||
| 
 | ||
| 					'table_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]',
 | ||
| 
 | ||
| 					'row_identifier_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 					'actions': [
 | ||
| 
 | ||
| 						{
 | ||
| 
 | ||
| 
 | ||
| 							'action_type': 'click',
 | ||
| 
 | ||
| 							'object_name': '申请书影像件',
 | ||
| 
 | ||
| 							'object': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 						},
 | ||
| 
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'extract',
 | ||
| 
 | ||
| 							'extractions': [
 | ||
| 
 | ||
| 								{
 | ||
| 
 | ||
| 									'field': '申请书影像件序号',
 | ||
| 
 | ||
| 									'field_xpath': '//*[@id="app"]/div/div/section/div/div[1]/div[1]/span[4]'
 | ||
| 
 | ||
| 								}
 | ||
| 
 | ||
| 							]
 | ||
| 
 | ||
| 						}
 | ||
| 
 | ||
| 					]
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'click',
 | ||
| 
 | ||
| 					'object_name': '身份证资料标签',
 | ||
| 
 | ||
| 					'object': '//*[@id="tab-4"]',
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'repeat',
 | ||
| 
 | ||
| 					'object_name': '点击顶部菜单-身份证资料,显示每一张影像件以获取数据',
 | ||
| 
 | ||
| 					'table_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]',
 | ||
| 
 | ||
| 					'row_identifier_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 					'actions': [
 | ||
| 
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'click',
 | ||
| 
 | ||
| 							'object_name': '身份证影像件',
 | ||
| 
 | ||
| 							'object': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 						},
 | ||
| 
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'extract',
 | ||
| 
 | ||
| 							'extractions': [
 | ||
| 
 | ||
| 								{
 | ||
| 
 | ||
| 									'field': '证件影像件类型',
 | ||
| 
 | ||
| 									'field_xpath': '//*[@id="app"]/div/div/section/div/div[1]/div[2]/div[1]/div/div[1]/input'
 | ||
| 
 | ||
| 								}
 | ||
| 
 | ||
| 							]
 | ||
| 
 | ||
| 						}
 | ||
| 
 | ||
| 					]
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'click',
 | ||
| 
 | ||
| 					'object_name': '未分类标签',
 | ||
| 
 | ||
| 					'object': '//*[@id="tab-6"]',
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'repeat',
 | ||
| 
 | ||
| 					'object_name': '点击顶部菜单-未分类,显示每一张影像件以获取数据',
 | ||
| 
 | ||
| 					'table_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]',
 | ||
| 
 | ||
| 					'row_identifier_xpath': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 					'actions': [
 | ||
| 
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'click',
 | ||
| 
 | ||
| 							'object_name': '未分类影像件',
 | ||
| 
 | ||
| 							'object': '//*[@id="app"]/div/div/section/div/div[3]/div[3]/div[2]/div[index]',
 | ||
| 
 | ||
| 						},
 | ||
| 
 | ||
| 						{
 | ||
| 
 | ||
| 							'action_type': 'extract',
 | ||
| 
 | ||
| 							'extractions': [
 | ||
| 
 | ||
| 								{
 | ||
| 
 | ||
| 									'field': '未分类影像件序号',
 | ||
| 
 | ||
| 									'field_xpath': '//*[@id="app"]/div/div/section/div/div[1]/div[1]/span[4]'
 | ||
| 
 | ||
| 								}
 | ||
| 
 | ||
| 							]
 | ||
| 
 | ||
| 						}
 | ||
| 
 | ||
| 					]
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| 				{
 | ||
| 
 | ||
| 					'action_type': 'close_and_switch',
 | ||
| 
 | ||
| 					'object_name': ['影像件', '审核页面']
 | ||
| 
 | ||
| 				},
 | ||
| 
 | ||
| '''		 |