从 [so] 上的其他帖子来看,此功能似乎运行得不太好。因此,大多数答案都包含使用 JavaScript 创建解决方案的建议。我已经改编了在此找到的示例所以答案 https://stackoverflow.com/a/38889823/6152737使用机器人框架:
拖放.js
var dataTransfer=
{
dropEffect:'',
effectAllowed:'all',
files:[],
items:{},
types:[],
setData:function(format,data)
{
this.items[format]=data;
this.types.push(format);
},
getData:function(format)
{
return this.items[format];
},
clearData:function(format){}
};
var emit=function(event,target)
{
var evt=document.createEvent('Event');
evt.initEvent(event,true,false);
evt.dataTransfer=dataTransfer;
target.dispatchEvent(evt);
};
var DragNDrop=function(src,tgt) {
src = document.getElementById(src);
tgt = document.getElementById(tgt);
emit('dragstart',src);
emit('dragenter',tgt);
emit('dragover',tgt);
emit('drop',tgt);
emit('dragend',src);
return true;
}
拖放机器人
*** Settings ***
Library SeleniumLibrary
Library OperatingSystem
Suite Setup Open_Browser ${url} Chrome
Suite Teardown Close Browser
*** Variables ***
${URL} = https://html5demos.com/drag/
*** Test Cases ***
Make Test
${js} Get File drag-n-drop.js
${result} Execute Javascript ${js}; return DragNDrop("two", "bin");
Capture Page Screenshot
Sleep 1