- 如果上传按钮使用的是input标签,则可以直接使用普通上传,将本地文件路径作为值传到input标签中
self.driver.find_element_by_name('file').send_keys('需要上传的文件路径')
如果不是则其中一种办法如下
使用的插件:AutoIT
- 通过AutoIT WindowInfo 的组件完成元素的定位操作【具体使用可以参考其他文章】
- 然后使用SciTE Script Editor 组件完成auto上传文件编码的操作
- 编码通过后,通过Compile Scrript to.exe 组件完成 au3 后缀文件的转换操作,最后转换成以.exe为后缀的文件
具体代码
Sleep(1000)
ControlFocus("打开","","Edit1")
WinWait("[CLASS:#32770]","",5)
ControlSetText("打开","","Edit1",$CmdLine[1])
Sleep(1000)
ControlClick("打开","打开(&O)","Button1")
####解释
ControlFocus :设定聚焦到某个窗口的某个控件上
WinWait:设定超时时间,直到某个元素坐标出现
ControlSetText:修改指定控件的文本信息,添加上传文件的路径
ControlClick :向鼠标发起指令进行操作控件
sleep:设置等待时间
#调用例子
使用selenium 的os 模块完成调用
os.system(r"D:\upfile.exe D:\页面自动化上传文件处\段落抽取有标题格式.doc")