Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs-在量角器e2e测试中模拟触摸事件_Angularjs_Jasmine_Protractor_Angularjs E2e - Fatal编程技术网

Angularjs-在量角器e2e测试中模拟触摸事件

Angularjs-在量角器e2e测试中模拟触摸事件,angularjs,jasmine,protractor,angularjs-e2e,Angularjs,Jasmine,Protractor,Angularjs E2e,我的移动Angularjs应用程序使用Jasmine量角器。我想在特定元素上测试触摸事件(touchStart/touchEnd等)。比如: it('should play video', function(){ var poster = by.css('.video-poster'); element(poster).??? //Simulate touch event here }); 更新: 由于量角器返回Selenium元素查找器,而不是角度元素,因此必须使用execu

我的移动Angularjs应用程序使用Jasmine量角器。我想在特定元素上测试触摸事件(touchStart/touchEnd等)。比如:

it('should play video', function(){
    var poster = by.css('.video-poster');
    element(poster).??? //Simulate touch event here
});
更新: 由于量角器返回Selenium元素查找器,而不是角度元素,因此必须使用
executeScript()
函数对其调用JavaScript方法,如:

var poster = element(by.css('.video-poster'));
browser.executeScript(
    'angular.element(arguments[0]).triggerHandler("touchstart");', poster);
原件: 您应该能够触发事件,如:

element(poster).triggerHandler("touchstart");
如果您需要事件对象中的更多内容,可以创建如下答案:

注意:


Angular似乎没有像jQuery那样为您提供
trigger()
方法,只提供了
triggerHandler()
,答案是TNX。这对我不起作用。我得到:TypeError:Object#没有方法“trigger”。这可能与以下事实有关:这是一个量角器测试,元素不是一个常规的jQuery元素嘿,对不起,当注释不完整时,我没有跟进。到现在为止,你希望已经通过了,但是如果没有,看看更新的版本是否有帮助。tnx再次询问答案。triggerHandler导致了类似的错误:TypeError:Object#没有方法“triggerHandler”。我猜元素(by.css('.video poster')也不是jqLite元素……哎呀,请原谅我的无知。是的,这是一个Selinium元素发现者谢谢你!这是工作(我不得不添加“浏览器”到“executeScript”在您的上次更新)。