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': ['影像件', '审核页面']
|
||
|
||
},
|
||
|
||
''' |