Javascript 双击x y坐标WebdriverIO
WebdriverIO提供了一个命令。与其他一些命令(如Javascript 双击x y坐标WebdriverIO,javascript,double-click,e2e-testing,webdriver-io,spectron,Javascript,Double Click,E2e Testing,Webdriver Io,Spectron,WebdriverIO提供了一个命令。与其他一些命令(如leftClick())不同,doubleClick()没有任何x-y参数。我无法双击某个特定组件上的特定x y位置。我之所以这样做,是因为应该在双击的确切位置插入子元素 我使用了moveToObject()首先将光标移动到特定位置,但是双击不会拾取该信息。它总是双击零部件的中心 此外,没有类似“elementIdDoubleClick”的命令。而且,行动尚未实施 有人知道如何双击组件内的特定x y坐标吗?您可以使用doDoubleClic
leftClick()
)不同,doubleClick()
没有任何x-y参数。我无法双击某个特定组件上的特定x y位置。我之所以这样做,是因为应该在双击的确切位置插入子元素
我使用了moveToObject()
首先将光标移动到特定位置,但是双击
不会拾取该信息。它总是双击零部件的中心
此外,没有类似“elementIdDoubleClick”的命令。而且,行动尚未实施
有人知道如何双击组件内的特定x y坐标吗?您可以使用
doDoubleClick()代码>首先移动到元素,然后使用doDoubleClick()
但请确保不推荐使用moveToObject()和doDoubleClick()
WDIO不会在不发布替代api的情况下删除它们
并确保使用webdriverOptions:({deprecationWarnings:false})
在你的应用程序启动配置中将这些警告静音。dododoubleclick()
对我来说在Chrome上似乎不起作用,我不知道为什么。我知道乔梅德河是。完成后,您将能够:
browser.moveToObject(someElement, x, y);
browser.actions().mouseDown().mouseUp().mouseDown().mouseUp().perform();
但现在,当我使用ChromeDriver 2.45时,我得到:
Error: unimplemented command: session/c4dae3dead96649fc7c26f75709257da/actions
如果你不在遥远的未来,这就是我的工作:
function doubleClick(someElement, x, y) {
let attempt = 0;
let timeToDoubleClick;
do {
browser.moveToObject(someElement, x, y);
let startTime = Date.now();
browser.buttonPress(0).buttonPress(0);
timeToDoubleClick = Date.now() - startTime;
console.log("Time to double click: " + timeToDoubleClick);
if (timeToDoubleClick > 500) {
console.log("Waiting 10 seconds to allow the CPU to breath / check to see if a tab has opened...");
browser.pause(10000);
// In my case I'm expecting a new tab to open
if(browser.getTabIds().length > 1) {
// The tab opened!
timeToDoubleClick = 0;
}
}
} while(timeToDoubleClick > 500 && attempt++ <= 5);
if(attempt > 5) {
throw new Error("Could not manage to double click!");
}
}
函数双击(someElement,x,y){
设尝试=0;
让时间双击;
做{
browser.moveToObject(someElement,x,y);
让startTime=Date.now();
浏览器。按钮按(0)。按钮按(0);
timeToDoubleClick=Date.now()-startTime;
log(“双击时间:+timeToDoubleClick”);
如果(时间双击>500){
log(“等待10秒以允许CPU呼吸/检查选项卡是否已打开…”);
浏览器暂停(10000);
//在我的情况下,我期待一个新的标签打开
if(browser.getTabIds().length>1){
//标签打开了!
timeToDoubleClick=0;
}
}
}while(timeToDoubleClick>500&&trument++5){
抛出新错误(“无法双击!”);
}
}
只是一个随机猜测;调用leftClick()
两次会发生什么?很好的开箱思考@ChrisG!我做了一点尝试,但没有成功,但我会再做一些尝试,如果成功的话,我会向大家汇报
function doubleClick(someElement, x, y) {
let attempt = 0;
let timeToDoubleClick;
do {
browser.moveToObject(someElement, x, y);
let startTime = Date.now();
browser.buttonPress(0).buttonPress(0);
timeToDoubleClick = Date.now() - startTime;
console.log("Time to double click: " + timeToDoubleClick);
if (timeToDoubleClick > 500) {
console.log("Waiting 10 seconds to allow the CPU to breath / check to see if a tab has opened...");
browser.pause(10000);
// In my case I'm expecting a new tab to open
if(browser.getTabIds().length > 1) {
// The tab opened!
timeToDoubleClick = 0;
}
}
} while(timeToDoubleClick > 500 && attempt++ <= 5);
if(attempt > 5) {
throw new Error("Could not manage to double click!");
}
}