Protractor 在浏览器堆栈中的safari浏览器中未触发拖放

Protractor 在浏览器堆栈中的safari浏览器中未触发拖放,protractor,browserstack,Protractor,Browserstack,使用的代码: 第1次迭代: 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. 浏览器堆栈中的错误消息: 失败:指定了无效的命令参数:未指定节点句柄 为“元

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

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.
浏览器堆栈中的错误消息:

失败:指定了无效的命令参数:未指定节点句柄 为“元素”来源提供。单击并按住鼠标后失败 移动

从浏览器堆栈服务器返回的错误消息:

失败:命令“POST” /找不到会话/7B14B2742B103DBBFF0756957D2377C35F513/keys'

第三次迭代:

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'));
从浏览器堆栈服务器返回的错误:

失败:命令“POST” /找不到会话/7B14B2742B103DBBFF0756957D2377C35F513/keys'

不过,它在Chrome浏览器(OSX、WINDOWS)、MS EDGE浏览器(WINDOWS)中运行良好


有关此问题的任何帮助。

该错误似乎是由发送到在中启动的会话的命令引起的


您可以使用browserstack功能显式设置要使用的协议。

不太可能解决问题,但值得一试。我使用这个函数

     /**
     * 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})

您应该对代码进行格式化,以提高可读性。请参阅此链接:
await dragAndDrop(vertical_slider,{x:0, y:-250})