如何在 e2e 测试期间访问和操作结构指令

拉乌尔

背景:我希望能够排列给定路线的 Angular2 屏幕的所有可能配置,并使用量角器对它们进行截图:http : //www.protractortest.org/#/debugging

问题:我似乎无法在 e2e 测试期间找到访问指令(例如 ng-if)的方法。

  • 是否可以在 e2e 测试中访问 ng-if 指令?
    • 如果是:有没有办法操纵指令?通过操纵,我的意思是在不改变指令所依赖的输入的情况下影响指令的评估。

可能的解决方案路径:以下是我如何访问路由器以导航到特定路线的示例:

it('should get the router', () => {
browser.executeScript(() => {
  const ng = window['ng'];
  const root = document.getElementsByTagName('app-root')[0];
  const router = ng.probe(root)
    .injector.get(ng.coreTokens.Router);
  const routes = router.config;
  ...
  ...
  return [];
}).then(ret=> console.log(ret));
});

想法

  • 也许可以使用 ng.probe 以某种方式获得 ng-if 指令

我会感谢有关我的问题的任何提示。

yurzui

你可以这样做:

html

<button id="find">Find ngIf directives and show all</button>

脚本

var findComments = function(el) {
    var arr = [];
    for(var i = 0; i < el.childNodes.length; i++) {
        var node = el.childNodes[i];
        if(node.nodeType === 8) {
            arr.push(node);
        } else {
            arr.push.apply(arr, findComments(node));
        }
    }
    return arr;
};


function findNgIfDirectives() {
  var commentNodes = findComments(document);
  const ng = window['ng'];
  commentNodes.forEach(function(node) {
    var debugNode = ng.probe(node);
    var ngIf = (debugNode.providerTokens[0]);
    var ngIfInstance = debugNode.injector.get(ngIf);

    ngIfInstance.ngIf = true;
  });

}
document.getElementById('find').addEventListener('click', findNgIfDirectives)

Plunker 示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在AngularJS中组织单元测试和e2e测试?

来自分类Dev

我如何e2e测试axios

来自分类Dev

如何使用GRAPHQL测试e2e Nestjs API

来自分类Dev

如何单击角度e2e测试

来自分类Dev

如何使用夜表运行e2e测试?

来自分类Dev

如何在Docker容器中为Laravel运行和安装Protractor E2E测试?

来自分类Dev

如何在量角器中排除一项或多项e2e测试

来自分类Dev

量角器-如何在Jasmine上使用标签进行e2e测试

来自分类Dev

如何为调用服务的功能编写单元和/或e2e测试

来自分类Dev

Stenciljs E2E测试:如何在Shadow Dom中找到一个孩子的孩子

来自分类Dev

模拟e2e测试时如何检测API修改?

来自分类Dev

在量角器e2e测试中,如何截屏?

来自分类Dev

如何编写Java e2e(端到端)测试

来自分类Dev

创建新的 aurelia 项目后如何开始 e2e 测试

来自分类Dev

如何通过以编程方式插入消息来 E2E 测试 Storm Topology 的功能

来自分类Dev

角度 e2e 测试:如何测试服务注入(使用)另一个服务

来自分类Dev

量角器e2e测试用例失败时如何发送电子邮件?

来自分类Dev

如何使用量角器在e2e测试中期望元素的动态计数

来自分类Dev

如何查看量角器e2e生成带有失败测试屏幕截图的html

来自分类Dev

如何检查是否选中了用于量角器e2e测试的复选框

来自分类Dev

Gitlab CI:如何配置具有多个服务器实例的cypress e2e测试?

来自分类Dev

如何查看量角器e2e生成带有失败测试屏幕截图的html

来自分类Dev

如何检查是否选中了用于量角器e2e测试的复选框

来自分类Dev

如何为使用OWIN,SignalR和Selenium / Protractor的Web应用程序进行E2E测试-我只能通过第一个测试

来自分类Dev

如何为使用OWIN,SignalR和Selenium / Protractor的Web应用程序进行E2E测试-我只能通过第一个测试

来自分类Dev

如何使用Guard Neste进行e2e

来自分类Dev

单选按钮的角度E2E测试绑定

来自分类Dev

Angular e2e测试以检查元素列表

来自分类Dev

自动化的e2e测试-WebDriverJS,Jasmine

Related 相关文章

  1. 1

    如何在AngularJS中组织单元测试和e2e测试?

  2. 2

    我如何e2e测试axios

  3. 3

    如何使用GRAPHQL测试e2e Nestjs API

  4. 4

    如何单击角度e2e测试

  5. 5

    如何使用夜表运行e2e测试?

  6. 6

    如何在Docker容器中为Laravel运行和安装Protractor E2E测试?

  7. 7

    如何在量角器中排除一项或多项e2e测试

  8. 8

    量角器-如何在Jasmine上使用标签进行e2e测试

  9. 9

    如何为调用服务的功能编写单元和/或e2e测试

  10. 10

    Stenciljs E2E测试:如何在Shadow Dom中找到一个孩子的孩子

  11. 11

    模拟e2e测试时如何检测API修改?

  12. 12

    在量角器e2e测试中,如何截屏?

  13. 13

    如何编写Java e2e(端到端)测试

  14. 14

    创建新的 aurelia 项目后如何开始 e2e 测试

  15. 15

    如何通过以编程方式插入消息来 E2E 测试 Storm Topology 的功能

  16. 16

    角度 e2e 测试:如何测试服务注入(使用)另一个服务

  17. 17

    量角器e2e测试用例失败时如何发送电子邮件?

  18. 18

    如何使用量角器在e2e测试中期望元素的动态计数

  19. 19

    如何查看量角器e2e生成带有失败测试屏幕截图的html

  20. 20

    如何检查是否选中了用于量角器e2e测试的复选框

  21. 21

    Gitlab CI:如何配置具有多个服务器实例的cypress e2e测试?

  22. 22

    如何查看量角器e2e生成带有失败测试屏幕截图的html

  23. 23

    如何检查是否选中了用于量角器e2e测试的复选框

  24. 24

    如何为使用OWIN,SignalR和Selenium / Protractor的Web应用程序进行E2E测试-我只能通过第一个测试

  25. 25

    如何为使用OWIN,SignalR和Selenium / Protractor的Web应用程序进行E2E测试-我只能通过第一个测试

  26. 26

    如何使用Guard Neste进行e2e

  27. 27

    单选按钮的角度E2E测试绑定

  28. 28

    Angular e2e测试以检查元素列表

  29. 29

    自动化的e2e测试-WebDriverJS,Jasmine

热门标签

归档