文件上传与下载操作(键盘操作)

本文介绍如何使用Selenium WebDriver实现文件上传功能,包括两种方法:直接使用send_keys方法发送文件路径和利用pypiwin32库模拟键盘操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    

如果是上传文件的标签名是input,而且type属性值是file(ps:<input type='file'>),对于这种文件上传,可以直接用send_keys(param),param为所要上传文件的绝对路径。

以下为代码例子:

from selenium import webdriver
from gaojidengdai.gongjulei import Duogongneng
from selenium.webdriver.common.by import By
import time

文件路径:
wenjian='E:\qiushengzhilu.txt'

qihuan=(By.XPATH,'.//*[@id="TANGRAM__PSP_4__footerULoginBtn"]')

username=(By.XPATH,'.//*[@id="TANGRAM__PSP_4__userName"]')
userpass=(By.XPATH,'.//*[@id="TANGRAM__PSP_4__password"]')
userjizhu=(By.XPATH,'.//*[@id="TANGRAM__PSP_4__memberPass"]')
userbutton=(By.XPATH,'.//*[@id="TANGRAM__PSP_4__submit"]')

usershangchuan=(By.XPATH,'.//*[@id="h5Input0"]')


yanzhingma=(By.XPATH,'.//*[@id="TANGRAM__23__button_send_mobile"]')



driver = webdriver.Chrome()
driver.get("https://pan.baidu.com/")
d = Duogongneng(driver)

d.click(qihuan)

d.sendkey(username,"17610331663")
d.sendkey(userpass,"duanyu1203..")
d.click(userjizhu)
d.click(userbutton)

s=d.isElementI(yanzhingma)

time.sleep(3)

if s:

time.sleep(20)

pass

else:

pass

直接输入文件路径就可以了
d.sendkey(usershangchuan,wenjian)








另外一种:可以通过控制键盘来操作

使用 用python的第三方库pypiwin32,具体操作见下代码

首先通过pip工具进行安装该依赖库:

在cmd中执行: python -m pip install pypiwin32

然后在项目中导入:

from selenium import webdriver
from gaojidengdai.gongjulei import Duogongneng
from selenium.webdriver.common.by import By
import time
import win32clipboard as w
import win32con
import win32api






wenjian='E:\qiushengzhilu.txt'

qihuan=(By.XPATH,'.//*[@id="TANGRAM__PSP_4__footerULoginBtn"]')

username=(By.XPATH,'.//*[@id="TANGRAM__PSP_4__userName"]')
userpass=(By.XPATH,'.//*[@id="TANGRAM__PSP_4__password"]')
userjizhu=(By.XPATH,'.//*[@id="TANGRAM__PSP_4__memberPass"]')
userbutton=(By.XPATH,'.//*[@id="TANGRAM__PSP_4__submit"]')

usershangchuan=(By.XPATH,'.//*[@id="h5Input0"]')


yanzhingma=(By.XPATH,'.//*[@id="TANGRAM__23__button_send_mobile"]')



driver = webdriver.Chrome()
driver.get("https://pan.baidu.com/")
d = Duogongneng(driver)

d.click(qihuan)

d.sendkey(username,"17610331663")
d.sendkey(userpass,"duanyu1203..")
d.click(userjizhu)
d.click(userbutton)

s=d.isElementI(yanzhingma)

time.sleep(3)

if s:

time.sleep(20)

pass

else:

pass

# 点击文件上传按钮
d.click(usershangchuan)



#打开剪切板功能
w.OpenClipboard()
#清空剪切板
w.EmptyClipboard()
#剪切内容
w.SetClipboardData(win32con.CF_UNICODETEXT,wenjian)
#关闭剪切板
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)







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值