Selenium for Python:如何在Send_Keys()之后启动文件上传

时间:2018-11-06 15:36:12

标签: python selenium selenium-webdriver file-upload

在Firefox中使用Selenium for Python,我试图将文件上传到隐藏文件输入字段。

我似乎可以通过以下方式使输入字段可见:

driver.execute_script("document.getElementsByClassName('btn btn-primary btn-lg pull-right fileInputWrapper ipadUploadButton')[0].style='display:True';")
driver.execute_script("document.getElementsByClassName('fileInput hiddenInput')[0].style='opacity:100';")

网页上出现一个字符串,提示未选择文件

接下来,我进行以下操作:

elem = driver.find_element_by_xpath('//input[@id="fileinput"]')
elem.send_keys('/Users/me/2018-01-29 - SR00281.pdf')

代替未选择文件,现在我可以在网页上看到文件路径为字符串:
2018-01-29-SR00281.pdf

但是,据我所知,什么也没有上传。

我在页面上找不到“提交”按钮(隐藏或可见)。通常有一个“上传文件” button,用于手动上传,但是会在MacOS上打开文件选择对话框。

在输入路径之后,我还尝试通过xp_up_elem.send_keys(Keys.RETURN)将Return键发送到输入字段,但是Selenium给出了FileNotFound异常,并引用了Return键的Unicode代码。

FWIW,这是未隐藏的输入字段的页面代码:

<div class="btn btn-primary btn-lg pull-right fileInputWrapper ipadUploadButton" data-bind="visible: isMobileDevice(), enable: app.session.isActive()" style="">
    <span data-i18n="UploadFile">Upload file</span>
    <input class="fileInput hiddenInput" id="fileinput" type="file" accept="image/jpeg,application/pdf,image/png,image/tif" style="opacity: 100;">                    
</div>

目前有什么可以做的吗?也许JavaScript或其他方法可以启动输入路径的实际上传吗?

0 个答案:

没有答案