如何模拟将文件从文件系统拖放到具有ondrag事件触发器的元素的操作?
对于normale“file”输入,我能够使用jQuery设置输入的值。我不能创建一个javascript文件对象或使用任何类似的黑客?
由于
由于
答案 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。)