Angularjs - simulates touch event in Protractor e2e test

I am using Transporter with Jasmine for my Angularjs mobile application. I want to check the touch event (touchStart / touchEnd, etc.) on a specific element. Something like:

it('should play video', function(){ var poster = by.css('.video-poster'); element(poster).??? //Simulate touch event here }); 
+8
angularjs jasmine protractor angularjs-e2e
source share
1 answer

Update:

Since Protractor returns a Selenium search element, not an angular element, you will need to use the executeScript() function to call the JavaScript method on it, for example:

 var poster = element(by.css('.video-poster')); browser.executeScript( 'angular.element(arguments[0]).triggerHandler("touchstart");', poster); 

Original:

You should be able to fire an event, for example:

 element(poster).triggerHandler("touchstart"); 

If you need more material in an event object, you can create one like this answer: jQuery trigger event in Karma test in AngularJS

Note:

Angular doesn't seem to provide you with a trigger() method like jQuery, only triggerHandler() , according to https://docs.angularjs.org/api/ng/function/angular.element

+7
source share

All Articles