拖放不会在浏览器堆栈中的 safari 浏览器中触发 [英] Drag and Drop is not triggering in safari browser in browser stack

查看:98
本文介绍了拖放不会在浏览器堆栈中的 safari 浏览器中触发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用的代码:第一次迭代:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆