在Protractor中,是否可以运行Angular模块功能?

时间:2015-07-10 21:45:48

标签: javascript angularjs protractor

我是Javascript和Protractor的新手。仍然试图让我的头脑简单的语法,所以请原谅我,如果我离开这里。

所以我们的角度应用程序,有一个模块,工厂生成吐司信息。我想在我的E2E测试期间禁用所有Toast消息。我们在工厂内有一个功能来禁用吐司。这是一些简化的代码。

//the module
var module = angular.module('toast',[]);

//the factory
module.factory('tf',[function tf(){

//factory code

//the function within the module's factory
moduleFactory.enable = function(enable){
        isEnabled = enable;
    };
}]);

我的问题是,我可以在量角器中访问该函数以将其转换为false吗?

我一直在寻找,似乎嘲笑是如何做到的。类似于禁用角度动画的方法。

// Disable animations so e2e tests run more quickly
var disableNgAnimate = function() {
angular.module('disableNgAnimate', []).run(['$animate', function($animate) {
$animate.enabled(false);
 }]);
};

browser.addMockModule('disableNgAnimate', disableNgAnimate);

但是,我正在努力学习模块中访问工厂功能的语法...任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

我相信我找到了可能有类似问题的其他人的解决方案。

使用量角器的executeScript函数。

browser.executeScript(function() 
{
    return angular.element(document).injector().get('toastFactory').enableToasts(false);
});
相关问题