This commit is contained in:
2025-10-15 17:37:40 +08:00
parent 8b1565f406
commit 2d89545816
5 changed files with 289 additions and 515 deletions
+268 -12
View File
@@ -18,6 +18,11 @@ class Sinopec_ewcc(object):
self.co.ignore_certificate_errors(True)
self.browser=Chromium(self.co)
self.tab=self.browser.latest_tab
#判断对应的任务是否完成
self.is_query_member=False
self.is_query_oil_fw_tj=False
self.is_query_oil_current_month_lj=False
self.is_query_client_emp_tj=False
def quit(self):
self.browser.quit()
@@ -269,10 +274,9 @@ class Sinopec_ewcc(object):
# 获取详情
detail_eles = myframe.eles("@@name=客户信息详情界面@@text()=详情")
for ele in detail_eles:
# 执行详情点击操作并获取数据
# 执行详情点击操作并获取数据
self.tab.listen.start('getAccCsrInfoByCsrid')
ele.click()
ele.click(by_js=True)
try:
detail_packet = self.tab.listen.wait(timeout=10)
if detail_packet and hasattr(detail_packet, 'response') and hasattr(detail_packet.response, 'body'):
@@ -293,23 +297,275 @@ class Sinopec_ewcc(object):
def query_memeber(self):
try:
# 切换到积分中心
# 切换到积分中心
self.tab.ele("@@tag()=li@@title=积分中心").click()
logger.info("点击积分中心")
time.sleep(2) # 可以考虑替换为条件等待
self.tab.ele("@@tag()=li@@title=综合管理").click()
topele=self.tab.ele("#childMenu")
aele=topele.ele("@@tag()=li@@onclick:综合管理")
aele.click(by_js=True)
logger.info("点击综合管理")
time.sleep(2) # 可以考虑替换为条件等待
#time.sleep(2) # 可以考虑替换为条件等待
# 点击客户信息查询
self.tab.ele("@@tag()=a@@name=客户拉新权益会员明细").click()
self.tab.ele("@@tag()=a@@name=员工拉新权益会员明细").click()
logger.info("点击客户拉新权益会员明细")
time.sleep(2) # 可以考虑替换为条件等待
except:
logger.error("查询客户信息时发生异常: ")
# 获取iframe
myframe = self.tab.get_frame("iframeemp_rec_sw")
time.sleep(2) # 可以考虑替换为条件等待
# 根据输入参数选择查询类型
search_type_ele = myframe.eles("@@tag()=input@@type=text")
#取得开始日期,并获得焦点
ele=search_type_ele[1]
logger.info(f"元素信息:{ele}")
ele.focus()
#查找 弹出的日期窗体
data_ele=myframe.ele("@@tag()=div@@class=el-picker-panel__body-wrapper")
ele_date_head=data_ele.ele("@@tag()=div@@class=el-picker-panel__header")
ele_date_content=data_ele.ele("@@tag()=div@@class=el-picker-panel__content")
logger.info(f"日期元素信息:{ele_date_head}")
logger.info(f"日期元素信息:{ele_date_content}")
ele_date_day=ele_date_content.eles("@@tag()=td")
for a in ele_date_day:
day=a.text
if day.isdigit() and int(day)==1:
a.click(by_js=True)
ele=myframe.eles("@@tag()=div@@class=el-form-item__content")
ele[1].click(by_js=True)
logger.info(f"myframe元素信息 :{ele[1]}")
#logger.info(f"日期选择器元素信息:{ele[0]}")
time.sleep(5) # 可以考虑替换为条件等待
search_type_ele = myframe.ele("@@tag()=span@@text():导出")
if search_type_ele:
self.tab.listen.start('exportUcRcodeSw')
search_type_ele.click(by_js=True)
export_packet = self.tab.listen.wait(timeout=10)
if export_packet and hasattr(export_packet, 'response') and hasattr(export_packet.response, 'body'):
if export_packet.response.body.get('success'):
logger.info("成功导出 员工拉新权益会员明细 ")
#logger.info(export_packet.request.postData)
self.tab.listen.stop()
return True
except Exception as e:
logger.exception(f"员工拉新权益会员明细查询异常: {str(e)}")
return False
def query_oil_fw_tj(self):
try:
# 切换到积分中心
self.tab.ele("@@tag()=li@@title=评价中心").click()
logger.info("点击评价中心")
topele=self.tab.ele("#childMenu")
aele=topele.ele("@@tag()=li@@onclick:综合管理")
aele.click(by_js=True)
logger.info("点击综合管理")
#time.sleep(2) # 可以考虑替换为条件等待
# 点击客户信息查询
self.tab.ele("@@tag()=a@@name=油站服务号应用统计").click()
logger.info("点击 油站服务号应用统计")
time.sleep(2) # 可以考虑替换为条件等待
# 获取iframe
myframe = self.tab.get_frame("iframeservice_no_apply_static")
time.sleep(2) # 可以考虑替换为条件等待
# 根据输入参数选择查询类型
search_type_ele = myframe.eles("@@tag()=input@@type=text")
for a in search_type_ele:
logger.info(f"元素信息:{a}")
#取得开始日期,并获得焦点
ele=search_type_ele[3]
logger.info(f"元素信息:{ele}")
ele.focus()
#查找 弹出的日期窗体
data_ele=myframe.ele("@@tag()=div@@class=el-picker-panel__body-wrapper")
ele_date_head=data_ele.ele("@@tag()=div@@class=el-picker-panel__header")
ele_date_content=data_ele.ele("@@tag()=div@@class=el-picker-panel__content")
logger.info(f"日期元素信息:{ele_date_head}")
logger.info(f"日期元素信息:{ele_date_content}")
ele_date_day=ele_date_content.eles("@@tag()=td")
for a in ele_date_day:
day=a.text
if day.isdigit() and int(day)==1:
a.click(by_js=True)
ele=myframe.eles("@@tag()=div@@class=el-form-item__content")
ele[1].click(by_js=True)
logger.info(f"myframe元素信息 :{ele[1]}")
#logger.info(f"日期选择器元素信息:{ele[0]}")
time.sleep(5) # 可以考虑替换为条件等待
search_type_ele = myframe.ele("@@tag()=span@@text():导出")
if search_type_ele:
self.tab.listen.start('exportUcRcodeSw')
search_type_ele.click(by_js=True)
export_packet = self.tab.listen.wait(timeout=10)
if export_packet and hasattr(export_packet, 'response') and hasattr(export_packet.response, 'body'):
if export_packet.response.body.get('success'):
logger.info("成功导出 员工拉新权益会员明细 ")
#logger.info(export_packet.request.postData)
self.tab.listen.stop()
return True
except Exception as e:
logger.exception(f"评价中心 员工拉新权益会员明细查询异常: {str(e)}")
return False
def query_client_emp_tj(self):
try:
# 切换到积分中心
self.tab.ele("@@tag()=li@@title=评价中心").click()
logger.info("点击评价中心")
topele=self.tab.ele("#childMenu")
aele=topele.ele("@@tag()=li@@onclick:统一客户服务评价")
aele.click(by_js=True)
logger.info("统一客户服务评价")
#time.sleep(2) # 可以考虑替换为条件等待
# 点击客户信息查询
self.tab.ele("@@tag()=a@@name=按油站汇总本月累计").click()
logger.info("点击 油站汇总本月累计")
time.sleep(2) # 可以考虑替换为条件等待
# 获取iframe
myframe = self.tab.get_frame("iframestation_refueling_total")
time.sleep(2) # 可以考虑替换为条件等待
# 根据输入参数选择查询类型
search_type_ele = myframe.eles("@@tag()=input@@type=text")
for a in search_type_ele:
logger.info(f"元素信息:{a}")
#取得开始日期,并获得焦点
ele=search_type_ele[1]
logger.info(f"元素信息:{ele}")
ele.focus()
#查找 弹出的日期窗体
data_ele=myframe.ele("@@tag()=div@@class=el-picker-panel__body-wrapper")
ele_date_head=data_ele.ele("@@tag()=div@@class=el-picker-panel__header")
ele_date_content=data_ele.ele("@@tag()=div@@class=el-picker-panel__content")
logger.info(f"日期元素信息:{ele_date_head}")
logger.info(f"日期元素信息:{ele_date_content}")
ele_date_day=ele_date_content.eles("@@tag()=td")
for a in ele_date_day:
day=a.text
if day.isdigit() and int(day)==1:
a.click(by_js=True)
ele=myframe.eles("@@tag()=div@@class=el-form-item__content")
ele[1].click(by_js=True)
logger.info(f"myframe元素信息 :{ele[1]}")
#logger.info(f"日期选择器元素信息:{ele[0]}")
time.sleep(5) # 可以考虑替换为条件等待
search_type_ele = myframe.ele("@@tag()=span@@text():导出")
if search_type_ele:
self.tab.listen.start('exportUcRcodeSw')
search_type_ele.click(by_js=True)
export_packet = self.tab.listen.wait(timeout=10)
if export_packet and hasattr(export_packet, 'response') and hasattr(export_packet.response, 'body'):
if export_packet.response.body.get('success'):
logger.info("成功导出 油站汇总本月累计 ")
#logger.info(export_packet.request.postData)
self.tab.listen.stop()
return True
except Exception as e:
logger.exception(f"评价中心 油站汇总本月累计查询异常: {str(e)}")
return False
def query_oil_current_month_lj(self):
try:
# 切换到积分中心
self.tab.ele("@@tag()=li@@title=评价中心").click()
logger.info("点击评价中心")
topele=self.tab.ele("#childMenu")
aele=topele.ele("@@tag()=li@@onclick:统一客户服务评价")
aele.click(by_js=True)
logger.info("统一客户服务评价")
#time.sleep(2) # 可以考虑替换为条件等待
# 点击客户信息查询
self.tab.ele("@@tag()=a@@name=客户评价与员工关联统计").click()
logger.info("点击 客户评价与员工关联统计")
time.sleep(2) # 可以考虑替换为条件等待
# 获取iframe
myframe = self.tab.get_frame("iframestation_refueling_total")
time.sleep(2) # 可以考虑替换为条件等待
# 根据输入参数选择查询类型
search_type_ele = myframe.eles("@@tag()=input@@type=text")
for a in search_type_ele:
logger.info(f"元素信息:{a}")
#取得开始日期,并获得焦点
ele=search_type_ele[1]
logger.info(f"元素信息:{ele}")
ele.focus()
#查找 弹出的日期窗体
data_ele=myframe.ele("@@tag()=div@@class=el-picker-panel__body-wrapper")
ele_date_head=data_ele.ele("@@tag()=div@@class=el-picker-panel__header")
ele_date_content=data_ele.ele("@@tag()=div@@class=el-picker-panel__content")
logger.info(f"日期元素信息:{ele_date_head}")
logger.info(f"日期元素信息:{ele_date_content}")
ele_date_day=ele_date_content.eles("@@tag()=td")
for a in ele_date_day:
day=a.text
if day.isdigit() and int(day)==1:
a.click(by_js=True)
ele=myframe.eles("@@tag()=div@@class=el-form-item__content")
ele[1].click(by_js=True)
logger.info(f"myframe元素信息 :{ele[1]}")
#logger.info(f"日期选择器元素信息:{ele[0]}")
time.sleep(5) # 可以考虑替换为条件等待
search_type_ele = myframe.ele("@@tag()=span@@text():导出")
if search_type_ele:
self.tab.listen.start('exportUcRcodeSw')
search_type_ele.click(by_js=True)
export_packet = self.tab.listen.wait(timeout=10)
if export_packet and hasattr(export_packet, 'response') and hasattr(export_packet.response, 'body'):
if export_packet.response.body.get('success'):
logger.info("成功导出 客户评价与员工关联统计 ")
#logger.info(export_packet.request.postData)
self.tab.listen.stop()
return True
except Exception as e:
logger.exception(f"评价中心 客户评价与员工关联统计查询异常: {str(e)}")
return False