Angularjs - 模拟量角器端到端测试触摸事件 [英] Angularjs - simulate touch event in Protractor e2e test
问题描述
我用量角器与茉莉我的移动应用程序Angularjs。我想一个特定的元素上测试触摸事件(touchStart / touchEnd等)。是这样的:
它('应该播放视频',函数(){
VAR海报= by.css('视频海报。');
元素(海报)???。 //此处模拟触摸事件
});
更新:
由于量角器返回硒元素发现者不是棱角元素,你必须使用 executeScript()
函数来调用就可以了JavaScript方法,如:
VAR海报=元素(by.css('视频海报。'));
browser.executeScript(
'angular.element(参数[0])triggerHandler(touchstart);',海报);
原文:
您应该能够触发事件,如:
元素(海报).triggerHandler(touchstart);
如果您在事件对象需要更多的东西,你可以创建一个这样的答案:<一href=\"http://stackoverflow.com/questions/21211036/jquery-trigger-event-in-angularjs-karma-test/21211207#21211207\">jQuery触发事件在AngularJS噶测试
注意:
这似乎角不为您提供触发()像jQuery
方法,只有 triggerHandler()
,如每 https://docs.angularjs.org/api/ng/function/angular。元素
I use Protractor with Jasmine for my mobile Angularjs app. I want to test a touch event (touchStart / touchEnd etc...) on a particular element. Something like:
it('should play video', function(){
var poster = by.css('.video-poster');
element(poster).??? //Simulate touch event here
});
Update:
Since Protractor returns a Selenium element finder not an angular element, you'll have to use the executeScript()
function to call a JavaScript method on it, like:
var poster = element(by.css('.video-poster'));
browser.executeScript(
'angular.element(arguments[0]).triggerHandler("touchstart");', poster);
Original:
You should be able to trigger the event, like:
element(poster).triggerHandler("touchstart");
If you need more stuff in the event object, you can create one like this answer: jQuery Trigger Event in AngularJS Karma Test
Note:
It seems Angular does not provide you with trigger()
method like jQuery, only triggerHandler()
, as per https://docs.angularjs.org/api/ng/function/angular.element
这篇关于Angularjs - 模拟量角器端到端测试触摸事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!