gpt4 book ai didi

selenium-webdriver - RobotFramework:拖放 Selenium2 关键字似乎不起作用

转载 作者:行者123 更新时间:2023-12-04 07:53:14 26 4
gpt4 key购买 nike

我正在测试 Web 应用程序(使用 RobotFramework 和 Selenium2Library),其中在几个点需要一些拖放操作。我试过 Drag And Drop 关键字,但它不能正常工作。

由于我无法通过生产应用程序,因此我使用以下页面重新创建了问题:
https://html5demos.com/drag/

我的代码是:

*** Settings ***
Library Selenium2Library

*** Variables ***
${URL} = https://html5demos.com/drag/

*** Test Cases ***

Prepare Browser
Open_Browser ${url} browser=chrome
Maximize Browser Window

Make Test
#Drag And Drop //*[@id="one"] //*[@id="bin"]
#Drag And Drop //*[@id="two"] //*[@id="bin"]
Capture Page Screenshot
Sleep 1

Close All
Close Browser

已经尝试使用 Python 2.7 和 3.6。

我得到的输出是 测试显示为 PASS ,但我看不到任何拖放操作的实际结果(在我的生产应用程序和上面链接的示例页面中)。
Screenshot of drag and drop test results

当我查看测试期间浏览器中发生的情况时,我注意到该对象变得可拖动(括号中添加了“拖动我”的引号),但测试停留了记录时间。当鼠标光标移动时,测试继续上面提到的int PASS,但没有实际效果。

在最新的 Chrome、Firefox、IE 上尝试过。还尝试使用关键字 鼠标按下 , 鼠标悬停 , 鼠标向上 ,但结果相同。

以下是执行报告中的日志截图:
Execution report screenshot

我很感激任何帮助或解决方法来正确完成它。

最佳答案

从 [so] 上的其他帖子看来,此功能不能很好地工作。出于这个原因,大多数答案都包含使用 JavaScript 来创建解决方案的建议。我已经改编了在此 SO answer 中找到的示例使用机器人框架:
拖放.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

关于selenium-webdriver - RobotFramework:拖放 Selenium2 关键字似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49571152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com