代码实现如下: 新建一个py文件来封装好使用 # python自带的插件,win32api是用来模拟键盘操作 import time,os import win32api,win32gui # python自带的插件,win32con是用来控制键盘 import win32con # 脚本字段的复制、粘贴 import pyperclip
#调用这个函数,传入一个文件地址进去 filePath=文件地址
def InputFileWithWindow(filePath):
iRetVal = 0
try:
dialog = win32gui.FindWindow('#32770', '打开') # 对话框
if dialog:
ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None)
ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None)
Edit = win32gui.FindWindowEx(ComboBox, 0, 'Edit', None) # 上面三句依次寻找对象,直到找到输入框Edit对象的句柄
if Edit:
button = win32gui.FindWindowEx(dialog, 0, 'Button', None) # 确定按钮Button
if button:
# win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, 'D:\ProjectCode\other-Installation-selenium\lib\IMX8-2.2.27.2.zip') # 往输入框输入绝对地址
win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, filePath)
time.sleep(5)
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button) # 按button
else:
print("error: 上传文件失败后确认失败")
iRetVal = -4
else:
print("error: 未找到弹窗的输入框")
iRetVal = -3
else:
print("error:没有找到文件系统弹窗")
iRetVal = -2
except:
print("error:上传文件失败")
iRetVal = -1
return iRetVal
调用这个函数
1、写好图片的路径
pase_path = os.path.dirname(__file__)
filePath = os.path.join(pase_path, '..', '..', '..', r'img21.png')
print(filePath )#查看路径是否正确
2、引入这个函数
from common.input_file_with_window import InputFileWithWindow
3、使用这个函数
self.driver.find_element_by_xpath('//div[@]').click() #触发本地文件上传 # 通过窗口打开
time.sleep(1)
#使用这个函数传入步骤一的路径
InputFileWithWindow(filePath) #获取文化图片方法
time.sleep(2)
self.driver.find_element_by_xpath('//button[@]').click() # 下一步
总结:也是百度找了很多种方法,这种确实不错,封装好了,直接用,展示效果没有截图,不过确实是可以用的,我在自己项目中也使用了,有好的方法可以一起交流!!



