我正在使用selenium构建一个自动浏览器,它运行完美! (谢谢你selenium(:) 但我无法上传文件。我需要执行的其中一个步骤是上传文件。
我用来上传的代码,似乎适用于很多人,是:
file_input = driver.find_element_by_id('ImageUploadButton')
file_input.send_keys('C:\\image.jpg')
也尝试过:
driver.find_element_by_id('ImageUploadButton').click()
driver.find_element_by_css_selector('input[type="file"]').clear()
driver.find_element_by_css_selector('input[type="file"]').send_keys('C:\\image.jpg')
这似乎适用于很多人,但对我来说,它只是打开文件浏览器,让我选择我要上传的文件,就是这样。没有错误消息,只是继续执行代码。
是否有人知道我可以使用另一个模块来浏览文件资源管理器并提交文件?
或者我不恰当地使用硒?
-----------编辑---------------
从网站添加DIV:
<div id="FileInputWrapper" class="file-input-wrapper">
<input id="FileUploadInput" type="hidden" name="file">
<button id="ImageUploadButton" class="button-update-cancel short file-upload-button" type="button" style="position: relative; z-index: 1;"> Select Images</button>
</div>
<input type="hidden" name="images">
<div id="html5_1auv7g94u187l1qdq108d1ue5qve3_container" class="moxie-shim moxie-shim-html5" style="position: absolute; top: 518px; left: 0px; width: 155px; height: 45px; overflow: hidden; z-index: 0;">
<input id="html5_1auv7g94u187l1qdq108d1ue5qve3" type="file" accept="image/jpeg,image/png,image/gif,image/bmp" multiple="" style="font-size: 999px; opacity: 0; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;">
</div>
答案 0 :(得分:2)
似乎您使用错误的定位器上传文件。您应该处理input
元素,而不是button
:
file_input = driver.find_element_by_xpath('//input[@type="file"]')
file_input.send_keys('C:\\image.jpg')