.mouseButtonDown / Up将无法在自定义命令NightwatchJS中使用

时间:2016-10-19 10:31:54

标签: nightwatch.js

当我在测试中使用.mouseButtonDown / Up时,它的工作正常,但是当我想将它添加到我的自定义命令时,我有typeError“this.move to element(...)。mouseButtonDown不是函数”

我的自定义命令如下:

 resize: function (Xoffset, Yoffset) {
       this.api.pause(1000);
       return this
                .moveToElement("@widget_resize", 5, 5)
                .mouseButtonDown(0)
                .moveToElement("@widgets_container", Xoffset, Yoffset)
                .mouseButtonUp(0);
    } 

测试中的代码有效:

 browser
                .moveToElement("span.react-resizable-handle", 5, 5)
                .mouseButtonDown(0)
                .moveToElement("main.site-container", 1630, 620)
                .mouseButtonUp(0)

2 个答案:

答案 0 :(得分:0)

我总是将客户端作为参数传递给任何需要与浏览器进行任何交互的自定义​​函数。我不记得为什么。所以,如果我没有弄错的话,下面应该有用。我欢迎任何stackoverflow用户解释为什么它的工作原理 - 或者为什么这是一个坏主意:

resize: function (client, Xoffset, Yoffset) {
       this.api.pause(1000);
       return
                client.moveToElement("@widget_resize", 5, 5)
                client.mouseButtonDown(0)
                client.moveToElement("@widgets_container", Xoffset, Yoffset)
                client.mouseButtonUp(0);
    } 

我希望因为这不是最佳做法而被投票,但我可以使用谦卑,更重要的是要更好地理解这些内容。

答案 1 :(得分:0)

你试过插入" .pause(500)" ?

resize: function (Xoffset, Yoffset) {
   this.api.pause(1000);
   return this
            .moveToElement("@widget_resize", 5, 5)
            .mouseButtonDown(0)
            .pause(500)
            .moveToElement("@widgets_container", Xoffset, Yoffset)
            .mouseButtonUp(0);
}