Selenium python:模拟文件拖动

时间:2013-11-04 15:35:27

标签: jquery python selenium selenium-webdriver

如何模拟将文件从文件系统拖放到具有ondrag事件触发器的元素的操作?

对于normale“file”输入,我能够使用jQuery设置输入的值。我不能创建一个javascript文件对象或使用任何类似的黑客?

由于

由于

4 个答案:

答案 0 :(得分:1)

看起来这是将文件路径发送到输入的问题,因为我认为所有拖动文件都是真的,或者使用JS创建的元素并使用drag_and_drop_by_offset移动到元素。 / p>

答案 1 :(得分:1)

Selenium仅适用于您的网络浏览器。如果您打开除文件浏览器之类的Web浏览器之外的其他内容,则无法与其进行交互。拖放工作在Web浏览器中的项目,但不是从Windows资源管理器或Linux文件浏览器等程序到Web浏览器。使用jQuery在浏览器中创建和元素并拖放它。

答案 2 :(得分:1)

你可能想尝试这样的事情

query = '''function previewFile() {
          var preview = document.querySelector('img');
          var file    = document.querySelector('input[type=file]').files[0];
          var reader  = new FileReader();

          reader.onloadend = function () {
            preview.src = reader.result;
          }

          if (file) {
            reader.readAsDataURL(file);
          } else {
            preview.src = "";
          }
        }'''

driver.execute_script(query)

您将不得不使用详细信息,但这应该会读取您的文件,您可能需要将其发送到DOM中的某个位置。

答案 3 :(得分:1)

Selenium周围有一个名为Helium的商业包装器,它允许您在一个命令中执行所需的操作:

drag_file('/path/to/file.txt', to=driver.find_element_by_id("yourElement"))

(我隶属于Helium。)