python非input类型上传文件的示例

以百度中的上传图片为例

具体步骤如下所示:

第一步:打开百度,并放大窗口;

第二步:点击按图片搜索

第三步:点击选择文件,弹出打开弹出

第四步:选择自己需要上传的文件

具体实现代码如下所示

from selenium import webdriver
import win32gui
import win32con
import time,sys
driver=webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.maximize_window()#最大
driver.find_element_by_xpath('//*[@id="form"]/span[1]/span[1]').click()
time.sleep(2)
# driver.find_element_by_xpath("xpath==//*[contains(text(),'选择文件')]").click()
#选择文件按钮使用常见的元素定位一直报错,使用execute_script模拟定位
element=driver.find_element_by_class_name("upload-pic")
time.sleep(1)
driver.execute_script("arguments[0].click();", element)
#弹出上传弹窗时间比较久,需要等待一段时间,在测试时代码一直运行成功,但是就是看不到上传文件的弹窗,卡了将近一天
time.sleep(10)
#一级顶层窗口,此处title为上传窗口名称,浏览器不一样上传窗口名称不一样
dialog = win32gui.FindWindow("#32770",'打开')
#二级窗口
ComboBoxEx32 = win32gui.FindWindowEx(dialog,0,"ComboBoxEx32",None)
#三级窗口
comboBox = win32gui.FindWindowEx(ComboBoxEx32,0,"ComboBox",None)
#四级窗口
edit = win32gui.FindWindowEx(comboBox,0,'Edit',None)
button = win32gui.FindWindowEx(dialog,0,'Button',None)
#执行操作 输入文件路径,文件路径根据自己的实际情况设置
win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,r"D:\学习笔记\img\airtest.png")
#点击打开上传文件
win32gui.SendMessage(dialog,win32con.WM_COMMAND,1,button)
print('上传成功')
time.sleep(4)
driver.quit()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值