保单影像提交

import win32api#处理系统弹框
import win32gui
import win32con

from selenium import webdriver#浏览器驱动
from selenium.webdriver.common.by import By#等待的凭据
from selenium.webdriver.support.ui import WebDriverWait#等待加载某凭据元素
from selenium.webdriver.support import expected_conditions as EC
from pykeyboard import PyKeyboard#系统按键
from pymouse import PyMouse#系统鼠标
import time#时间模块
from selenium.webdriver.common.keys import Keys#webdriver的键盘
import shutil#可以移动文件
import os#处理win系统
import sys#python系统
import re#正则模块
from PIL import Image#展示图片
from PIL import ImageEnhance#文件数字转换成图片

import PIL
from io import BytesIO#二进制
import importlib
importlib.reload(sys)

basic_dir=r'D:\00000'#基础地址,文件地址
wenjian_list=os.listdir(basic_dir)#文件夹下所有的压缩包
 
#print(wenjian_list)

m=PyMouse()#实例化鼠标
k=PyKeyboard()#实例一个键盘
executable_path=r'geckodriver.exe'#geckodriver驱动路径
firefox_binary=r'.\Mozilla Firefox\firefox.exe'#Firefox启动路径
driver = webdriver.Firefox(executable_path=executable_path,firefox_binary=firefox_binary)
driver.get('https://ft.95552.cc:8001/claimweb/Pages/Frame/Login.aspx')

WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,'//html')))
time.sleep(1)

txtName=driver.find_element_by_tag_name('input[name="txtName"]')
#print(txtName,1)
txtName.send_keys('10301614B')
time.sleep(0.5)
txtPWD=driver.find_element_by_tag_name('input[name="txtPWD"]')
txtPWD.send_keys('Yong+1234')
time.sleep(0.5)
#print(txtPWD,2)K
imgVerifyCode=driver.find_element_by_tag_name('img[id="imgVerifyCode"]')
#验证码位置
#print(imgVerifyCode.size,3)#{'height': 23.0, 'width': 80.0} 3
#print(imgVerifyCode.location,4)#{'x': 783, 'y': 397} 4
shg=imgVerifyCode.location['y']+90#上
xia=imgVerifyCode.location['y']+imgVerifyCode.size['height']+110#下
zuo=imgVerifyCode.location['x']+200#左
you=imgVerifyCode.location['x']+imgVerifyCode.size['width']+220#右
pic=driver.get_screenshot_as_png()#截屏


pic=Image.open(BytesIO(pic))#二进制转换成文件
pic=pic.crop((zuo,shg,you,xia))
pic = pic.convert('RGBA')  # 转换模式:L | RGB
pic = pic.convert('L')  # 转换模式:L | RGB
pic = ImageEnhance.Contrast(pic)  # 增强对比度
pic = pic.enhance(2.0)  # 增加饱和度
pic.show()#弹出图片
yzmsr=driver.find_element_by_tag_name('input[id="textfield3"]')
print('请输入您看到的验证码,然后回车')
yzm=input('请输入>>>')
time.sleep(10)
yzmsr.send_keys(yzm)
time.sleep(0.5)
denglu=driver.find_element_by_tag_name('input[id="btnLogin"]')
denglu.click()
time.sleep(1)
k.press_key(k.return_key)
k.release_key(k.return_key)
#等待加载页面
WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,'//html')))
time.sleep(10)
zhankai=driver.find_element_by_tag_name('div[title="Open"]')
webdriver.ActionChains(driver).move_to_element(zhankai).click(zhankai).perform()
time.sleep(1)
zonghezongxin=driver.find_element_by_xpath('//div[@id="accordion"]/h3[4]/a')
zonghezongxin.click()
time.sleep(1)
yingxiangbc=driver.find_element_by_id("M010510")
yingxiangbc.click()
WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,'//html')))
time.sleep(1)

def a(bdhao,lujing):

    baodanhao=driver.find_element_by_id("ipt_policy_no")
    baodanhao.clear()
    time.sleep(0.5)
    baodanhao.send_keys(bdhao)
    time.sleep(1)
    chaxun=driver.find_element_by_id("btnClik")
    chaxun.click()
    WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,'//html')))
    time.sleep(5)
    #peianhao=driver.find_element_by_xpath('//tbody/tr[@class="eror"][position()=last()]/td[1]')
    peianhao=driver.find_elements_by_tag_name('td[class="sorted"]')[-2]
    print(peianhao)

    peianhao.click()
    time.sleep(1)
    windows=driver.window_handles
    driver.switch_to_window(windows[-1])
    WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,'//html')))
    time.sleep(7)
    daoru=driver.find_element_by_id("imageImport_id")
    daoru.click()
    time.sleep(2)
    windowtitle="文件上传"
    hwnd = win32gui.FindWindow(None,windowtitle)#主窗口
    print(hwnd)
    hWndChildList = []
    win32gui.EnumChildWindows(hwnd,lambda hWnd,param:param.append(hWnd),  hWndChildList)
    print(hWndChildList)
    count=0
    handle=hWndChildList[16]
    win32api.SendMessage(handle, win32con.WM_SETTEXT, 0, lujing)
    time.sleep(2)
    k.press_key(k.return_key)
    k.release_key(k.return_key)
    k.press_key(k.return_key)
    k.release_key(k.return_key)
    time.sleep(1)
    k.press_key(k.return_key)
    k.release_key(k.return_key)
    time.sleep(2)
    xuanzhong=driver.find_element_by_xpath('//li[@class="ui-sortable-div"]')
    xuanzhong.click()
    time.sleep(1)
    guilei=driver.find_element_by_tag_name('''button[onclick="showDocSelection(null, '归类至')"]''')
    guilei.click()
    time.sleep(3)
    sr=driver.find_element_by_tag_name('input[placeholder="可输入条件模糊查询"]')
    sr.click()
    time.sleep(1)
    lpsqb=driver.find_element_by_tag_name('a[title="理赔申请表"]')
    webdriver.ActionChains(driver).move_to_element(lpsqb).click(lpsqb).perform()
    #lpsqb.click()
    time.sleep(2)
    qd=driver.find_element_by_tag_name('input[value="确 定"]')
    try:
        qd.click()
    except:
        qd.click()
    time.sleep(2)
    tijiao=driver.find_element_by_tag_name('button[id="batchSubmit_id"]')
    tijiao.click()
    time.sleep(1)
    #win32api.SendMessage(hwnd, win32con.WM_SETTEXT, 0, r'C:\Users\dell\Desktop\新建文本文档.txt'.encode('gbk'))
    k.press_key(k.return_key)
    k.release_key(k.return_key)
    time.sleep(1)
    k.press_key(k.return_key)
    k.release_key(k.return_key)
    time.sleep(2)
    driver.close()
    handler=driver.window_handles[0]
    driver.switch_to_window(handler)
    time.sleep(2)
for wenjian in wenjian_list:
    baodanhao1=wenjian.split('_')[0]#保单号
    wenjian_path1=os.path.join(basic_dir,wenjian)#文件路径
    a(baodanhao1,wenjian_path1)

 

posted @ 2021-01-15 17:38  Eric_Z-HACK  阅读(43)  评论(0)    收藏  举报