Protractor Drag5Dropl por la ubicación de offset de elemento
-
02-01-2020 - |
Pregunta
Pregunta: ¿Hay alguna manera de que pueda compensar la ubicación de inicio para arrastrar?
Me gustaría editar la ubicación de dónde para iniciar el proceso de arrastre.Pruebas en otro elemento que puedo agarrar sin ajuste El siguiente código funciona bien:
var controlPoint = $$('circle.points').first();
browser.actions().
dragAndDrop(controlPoint.getLocation(), {x: 500, y: 50}).
perform();
Sin embargo, cuando intento configurarlo para modificar la ubicación como esta:
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();
});
Obtengo el siguiente error:
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 ====
Solución
El problema está en dragAndDrop(loc
porque dragAndDrop()
realiza un elemento, el primer argumento y el primer argumento y está pasando loc
, que es un objeto con las propiedades x
y y
.
Intenta esto:
browser.actions().
dragAndDrop(controlPoint, {x: 500, y: 50}).
perform();
Otros consejos
¿Es posible parametrizar el segundo parámetro o offset a DragAndDrop?Arrastrar y soltar funciona con un objeto offset con codificación dura como aquí se describe {x: 500, y: 50} pero se trata {x: x, y: y}, al menos para mí, como indefinido (en la función de actuación).