如何在e2e测试中触发'swipeleft'事件(量角器)

Ale*_*lex 9 swipe angularjs protractor e2e-testing

例如,我有这个应用程序的HTML代码:

<div class="swipe-cover" ng-swipe-left="func()"></div>
Run Code Online (Sandbox Code Playgroud)

这样的测试:

it('test', function() {
   browser.executeScript( 'angular.element(".swipe-cover").triggerHandler("swipeleft")' );
});
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

如果我使用'click'insteaf'swipeleft',它就可以了.

如何为e2e测试触发'swipeleft'事件?

Jul*_*ubé 2

使用一系列动作可以更好地模拟手势:

driver.actions()
        .mouseDown(element(by.css('.filter-editorial-rating .ngrs-handle-max')))
        .mouseMove({x: -50, y: 0}) // try different value of x
        .mouseUp()
        .perform();
Run Code Online (Sandbox Code Playgroud)

请参阅https://github.com/angular/angular.js/blob/master/src/ngTouch/directive/ngSwipe.js#L74来帮助您找出 -50 有效时的正确值。