模拟键盘操作实现文件上传
在做web自动化测试的时候,实现文件的上传有3种方法:
1:用工具AuotIt工具(个人不推荐使用,因为需要自己下载工具,操作相对麻烦。
2:如果是上传文件的标签名是input,而且type属性值是file(ps:<input type='file'>),对于这种文件上传,可以直接用send_keys(param),param为所要上传文件的绝对路径。
3:用python的第三方库pypiwin32,具体操作见下代码
import win32clipboard as w
from selenium import webdriver
import win32con
import win32api
import time
driver.find_element_by_xpath("//input[@type='file']").click()
#打开剪切板功能 w.OpenClipboard() #清空剪切板 w.EmptyClipboard() #剪切内容 w.SetClipboardData(win32con.CF_UNICODETEXT,"D:\\1.jpg") #关闭剪切板 w.CloseClipboard() VK_CODE={ 'enter':0x0D, 'ctrl':0x11, 'v':0x56, } time.sleep(2) #按下ctrl键 win32api.keybd_event(VK_CODE["ctrl"],0,0,0) #按下v键 win32api.keybd_event(VK_CODE["v"],0,0,0) #释放ctrl键 win32api.keybd_event(VK_CODE["ctrl"],0,win32con.KEYEVENTF_KEYUP,0) #释放v键 win32api.keybd_event(VK_CODE["v"],0,win32con.KEYEVENTF_KEYUP,0) #按下enter键 win32api.keybd_event(VK_CODE["enter"],0,0,0) 释放enter键 win32api.keybd_event(VK_CODE["enter"],0,win32con.KEYEVENTF_KEYUP,0) time.sleep(2) driver.find_element_by_class_name('user_submit').click()