小编Bow*_*er2的帖子

点击量角器中元素的给定坐标

我想点击我的canvas元素的特定位置,所以我写了下面的Protractor代码:

var canvas = element(by.id("canvas"));

var clickCanvas = function(toRight, toBottom) { 
  browser.actions()
    .mouseMove(canvas, -toRight, -toBottom)
    .click();
}
Run Code Online (Sandbox Code Playgroud)

toRight/ toBottom是应该进行单击的像素数,相对于画布的左上角.

但是,似乎没有在给定坐标处执行单击.我从软件质量保证和测试堆栈交换的相关问题中获得了片段.

你能确认这个片段有效吗?
你能建议替代品吗?

javascript mousemove angularjs-e2e protractor

11
推荐指数
2
解决办法
1万
查看次数

在量角器中简化嵌套承诺

我的画布尺寸和位置未知.我想基于量角器中画布的尺寸和位置来模拟单击特定坐标.

以下工作,但相当繁琐:

 var canvas = element(by.id("canvas")); 

 canvas.getCssValue("left").then(function (left) {

            canvas.getCssValue("top").then(function (top) {

                canvas.getCssValue("width").then(function(oldWidth) {

                        canvas.getCssValue("height").then(function (oldHeight) {

                        // some code that uses left, top, oldWidth and oldHeight together

                                })
                            })

                        })
                    }
                )
            })
        })
Run Code Online (Sandbox Code Playgroud)

是否有更优雅的方式一次性使用所有这些承诺?我真的想做类似以下的事情:

var width = canvas.getCssValue("width");
var height = canvas.getCssValue("height");

var left = canvas.getCssValue("left");
var top = canvas.getCssValue("top");

//code that uses these variables. 
Run Code Online (Sandbox Code Playgroud)

但当然,如果违背承诺的性质.谢谢你的帮助.

javascript nested promise angularjs protractor

4
推荐指数
1
解决办法
1091
查看次数