VBA IE Automation – 上传文件

我正在使用VBA自动化IE上传文件到网站。 我已经到了我已经find与“文件”types的button,但似乎在设置path时画空白。

我目前的VBA如下所示:

Dim btnInput As Object ' MSHTML.HTMLInputElement Dim ElementCol As Object ' MSHTML.IHTMLElementCollection . . . Set ElementCol = appIE.Document.getElementsByTagName("input") For Each btnInput In ElementCol If btnInput.Type = "file" Then btnInput.Value = "C:\temp\text.csv" Exit For End If Next btnInput 

和它正在阅读的HTML是这样的:

 <div id="upload-assignments-modal" class="modal hide fade in" tabindex="-1" role="dialog" aria-hidden="false" style="display: block;"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="myModalLabel">Upload order changes</h3> </div> <form id="upload-form" enctype="multipart/form-data" action="" method="post" accept-charset="utf-8"> <div class="modal-body"> <div style="display:none"><input type="hidden" name="csrfmiddlewaretoken" value="abcde"></div> <input type="hidden" name="partner" value="488" id="id_partner"> <p><label for="id_feed_file">Feed file</label><input type="file" name="feed_file" id="id_feed_file"></p> <input type="hidden" name="feed_type" value="390" id="id_feed_type"> </div> <div class="modal-footer"> <button class="btn" data-dismiss="modal">Cancel</button> <button name="action" value="upload" type="submit" class="btn btn-primary">Upload</button> </div> </form> </div> 

它findtypes时,逐步通过,并确实去设置的价值,但然后在屏幕上没有改变(我有IE实例显示为可见的testing),并不添加文件。 我是否正确地认为“文件”inputtypes需要的东西不是.Value它的input?

试一试

 Set ElementCol = appIE.Document.getElementsByTagName("input") For Each btnInput In ElementCol If btnInput.Type = "file" Then btnInput.Value = "C:\temp\text.csv" btnInput.FireEvent ("onclick") Exit For End If Next btnInput