拖放不会在浏览器堆栈中的 safari 浏览器中触发 [英] Drag and Drop is not triggering in safari browser in browser stack
问题描述
使用的代码:第一次迭代:
Code used: 1st Iteration:
line1. Functions.highlightelement(vertical_slider); //highlights the given xpath value
line2. browser.actions().dragAndDrop(vertical_slider,{x:0, y:-250}).perform(); // drag till certain position.
浏览器堆栈中的错误消息:
Error message in browser stack:
失败:指定了无效的命令参数:节点句柄不为元素"来源提供.单击并按住鼠标后失败移动.
Failed: An invalid command argument was specified: Node handle not provided for 'Element' origin. It fails after clickandhold and mouse move.
2nd Iteration:
line1. Functions.highlightelement(vertical_slider); //highlights the given xpath value
line2. vertical_slider.click(); // click on the thumb element
line3. browser.actions().sendKeys(protractor.Key.ARROW_UP).perform();
浏览器堆栈服务器返回的错误信息:
Error message returned from browser stack server:
失败:命令'POST未找到/session/7b14db2742b2b103dbbff0756957d2377c35f513/keys'.
Failed: The command 'POST /session/7b14db2742b2b103dbbff0756957d2377c35f513/keys' was not found.
第三次迭代:
line1. Functions.highlightelement(vertical_slider); //highlights the given xpath value
line2. vertical_slider.click(); // click on the thumb element
line3. browser.actions().sendKeys(protractor.Key.chord(protractor.Key.CONTROL,'end'));
从浏览器堆栈服务器返回的错误:
Error returned from browser stack server:
失败:命令'POST未找到/session/7b14db2742b2b103dbbff0756957d2377c35f513/keys'.
Failed: The command 'POST /session/7b14db2742b2b103dbbff0756957d2377c35f513/keys' was not found.
不过它在 Chrome 浏览器 (OS x , WINDOWS)、MS EDGE 浏览器 (WINDOWS) 中运行良好.
However it works well in Chrome Browser (OS x , WINDOWS) , MS EDGE browser (WINDOWS).
对此有任何帮助.
推荐答案
不太可能解决问题,但值得一试.我用这个功能
unlikely to solve the problem, but worth a try. I use this function
/**
* Drags first element to the second one
* @param {ElementFinder} $element
* @param {(ElementFinder|{x: number, y: number})} $destination
* @returns {promise.Promise}
*/
dragAndDrop: ($element, $destination) => {
return browser
.actions()
.mouseMove($element)
.perform()
.then(() =>
browser
.actions()
.mouseDown($element)
.perform()
)
.then(() =>
browser
.actions()
.mouseMove($destination)
.perform()
)
.then(() =>
browser
.actions()
.mouseUp()
.perform()
);
}
别忘了等待
它
await dragAndDrop(vertical_slider,{x:0, y:-250})
这篇关于拖放不会在浏览器堆栈中的 safari 浏览器中触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!