如何模拟将文件从文件系统拖放到具有 ondrag 事件触发器的元素的操作?
至于正常的“文件”输入,我可以使用 jQuery 设置输入的值。我不能创建一个 javascript File 对象或使用任何类似的 hack 吗?
谢谢
谢谢
如何模拟将文件从文件系统拖放到具有 ondrag 事件触发器的元素的操作?
至于正常的“文件”输入,我可以使用 jQuery 设置输入的值。我不能创建一个 javascript File 对象或使用任何类似的 hack 吗?
谢谢
谢谢
Selenium 有一个名为Helium的商业包装器,可让您在一个命令中执行您想要的操作:
drag_file('/path/to/file.txt', to=driver.find_element_by_id("yourElement"))
(我隶属于氦气。)
Selenium 仅适用于您的网络浏览器。如果您打开的不是 Web 浏览器,例如文件浏览器,则您无法与之交互。拖放适用于 Web 浏览器中的项目,但不适用于从 Windows 资源管理器或 Linux 文件资源管理器等程序到 Web 浏览器。使用 jQuery 在浏览器中创建元素并拖放它。
您可能想尝试这样的事情
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 中的某个位置。
看起来这是将文件路径发送到输入的问题,因为我认为这一切都是在拖动文件,或者将创建的元素与 JS 一起使用并使用drag_and_drop_by_offset和移动到元素。