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

2024-10-06 10:33:52 发布

您现在位置:Python中文网/ 问答频道 /正文

在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';")

网页上会出现一个字符串,说明没有选择文件。在

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

^{pr2}$

代替没有选择文件,我现在可以在网页上看到一个字符串形式的文件路径:
2018-01-29-SR00281.pdf。在

然而,据我所知,没有上传任何内容。在

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

在输入路径之后,我还尝试通过xp_up_elem.send_keys(Keys.RETURN)向输入字段发送Return key,但随后Selenium给出了一个FileNotFound异常,引用了返回键的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或者其他什么东西来启动输入路径的实际上传?在


Tags: 文件image路径executestyledriverseleniumscript