0

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

至于正常的“文件”输入,我可以使用 jQuery 设置输入的值。我不能创建一个 javascript File 对象或使用任何类似的 hack 吗?

谢谢

谢谢

4

4 回答 4

2

Selenium 有一个名为Helium的商业包装器,可让您在一个命令中执行您想要的操作:

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

(我隶属于氦气。)

于 2014-01-21T07:47:36.800 回答
1

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

于 2013-11-04T15:53:22.020 回答
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 中的某个位置。

于 2013-11-04T21:02:05.217 回答
1

看起来这是将文件路径发送到输入的问题,因为我认为这一切都是在拖动文件,或者将创建的元素与 JS 一起使用并使用drag_and_drop_by_offset和移动到元素。

于 2013-11-04T15:50:26.843 回答