0

我希望使用 Firefox 作为浏览器自动将文件从桌面拖放到页面,并使用 Python 上的 Selenium 进行自动化。

这是页面上拖放的代码:

<div id="dropbox">...</div>
<script type="text/javascript"> ... 
   dropbox.addEventListener("drop", dropUpload, false);
<script>

...

function dropUpload(event) { 
... 
files = event.dataTransfer.files;
...
}

那里的大多数线程都处理从文件系统中删除文件之外的其他一些元素。问题是我需要事件包含一个带有实际数据的文件对象。

正如其他人所建议的那样,我尝试只输入 Dropbox 元素,但这显然不适用于 div 元素。

4

1 回答 1

0

单独使用 Selenium 是非常痛苦的。如果您可以选择使用 Selenium 的商业插件,您可以尝试Helium。它允许您通过以下代码拖动文件:

from helium.api import drag_file
drag_file(r"C:\Documents\notes.txt", to=driver.find_element_by_id("dropbox"))

更好的是,如果您的#dropboxdiv 包含一些文本,例如。Drop files here. 然后你可以做

drag_file(r"C:\Documents\notes.txt", to="Drop files here")
于 2014-01-06T10:42:32.620 回答