如何使用Selenium和Python(以及JavaScript)拖放文件

2024-09-30 08:15:22 发布

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

我正在尝试建立一个应用程序,上传文件到几个网站(有可能在任何时候添加更多的网站)。 为此,我将Python与Selenium一起使用,但是我找不到设置拖放事件/操作的方法。 我只想拖动一个本地文件并将其放到一个HTML元素上(比如div或表单)来上传它。 我已经找到了一种使用this site来实现它的方法,但是它只会使用它,因为它会触发一个特定的JavaScript函数。在

var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
// ... give time for script to load
jQuery.noConflict();

myOwnInput = window.jQuery('<input id="myOwnInput" type="file" />').appendTo('body');

function simulateDrop() {
    var fileInput = document.getElementById('myOwnInput'),
        file = fileInput.files[0];        
    holder.ondrop({ 
        dataTransfer: { files: [ file ] }, 
        preventDefault: function () {} 
    });
};

// Now I select a file with the input that I just added and then I execute the next line
simulateDrop();

这段代码不是我的,我把(来自here和{a3})的部分代码放在一起,因为我不懂Javascript,但是如果有必要对多个站点执行拖放功能,我可以毫无问题地学习它。 目前,我想我可以为每个网站学习如何实现拖放功能,但正如我所说,我必须学习JavaScript,我不知道是否有更好的方法来实现我的目标。 因此,我正在寻找一种有效的方法来对多个站点执行拖放操作,最好是使用Python,但它不是独占的。在

例如,我试图用uploadfiles.io来实现它,但是我不能使它工作。在

总而言之,我需要的是如何对不同网站上的文件执行拖放操作的建议。在


Tags: 文件方法input网站varscriptajaxfunction

热门问题