问题: 有没有办法可以将起始位置偏移到拖动?
我想编辑开始拖动过程的位置。测试我可以在不调整的情况下获取的另一个元素下面的代码可以正常工作:
var controlPoint = $$('circle.points').first();
browser.actions().
dragAndDrop(controlPoint.getLocation(), {x: 500, y: 50}).
perform();
然而,当我尝试将其设置为修改这样的位置时:
var controlPoint = $$('circle.points').first();
controlPoint.getLocation().then(function (loc) {
// would modify loc.x and loc.y here if this didn't give an error
browser.actions().
dragAndDrop(loc, {x: 500, y: 50}).
perform();
});
我收到以下错误:
Failures:
1) Single Segments should test dragging and dropping of control points
Message:
UnknownError: unknown error: at least an element or offset should be set
(Session info: chrome=36.0.1985.125)
(Driver info: chromedriver=2.10.267517,platform=Mac OS X 10.9.4 x86_64)
Stacktrace:
UnknownError: unknown error: at least an element or offset should be set
(Session info: chrome=36.0.1985.125)
(Driver info: chromedriver=2.10.267517,platform=Mac OS X 10.9.4 x86_64)
==== async task ====
mouseMove
at Array.forEach (native)
==== async task ====
ActionSequence.perform
at /Users/willko/Desktop/e2e_sketching/specs/sketch2.js:25:6
==== async task ====
答案 0 :(得分:0)
问题出在dragAndDrop(loc
,因为dragAndDrop()
将ElementFinder或WebElement作为第一个参数,并且您正在传递loc
,这是一个带有x
和{的对象{1}}属性。
试试这个:
y
答案 1 :(得分:0)
是否可以将第二个参数或偏移参数化为dragAndDrop?拖放适用于硬编码的偏移对象,如此处描述的{x:500,y:50},但至少对我来说,将{x:x,y:y}视为未定义(在ActionSequence.mouseMove函数中)。