locators - Angularjs: simule el evento táctil en la prueba de e2e de Protractor
protractor tutorial español (1)
Utilizo Transportador con Jasmine para mi aplicación móvil Angularjs. Quiero probar un evento táctil (touchStart / touchEnd, etc.) en un elemento en particular. Algo como:
it(''should play video'', function(){
var poster = by.css(''.video-poster'');
element(poster).??? //Simulate touch event here
});
Actualizar:
Dado que Protractor devuelve un buscador de elementos de Selenium, no un elemento angular, deberá usar la función executeScript()
para invocar un método de JavaScript, como por ejemplo:
var poster = element(by.css(''.video-poster''));
browser.executeScript(
''angular.element(arguments[0]).triggerHandler("touchstart");'', poster);
Original:
Deberías poder activar el evento, como:
element(poster).triggerHandler("touchstart");
Si necesita más material en el objeto del evento, puede crear uno como este: jQuery Trigger Event en AngularJS Karma Test
Nota:
Parece que Angular no le proporciona el método trigger()
como jQuery, solo triggerHandler()
, según https://docs.angularjs.org/api/ng/function/angular.element