模拟键盘操作实现文件上传

在做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()

 

posted @ 2019-07-24 21:19  Be_your_own_hero  阅读(420)  评论(0编辑  收藏  举报