从赛普拉斯访问DOM元素的Angular属性

迈克尔·索伦斯

我有一个Angular应用程序,其中有一个像这样的容器:

<div id="my-container" [data-version]="version$ | async">

我已data-version为赛普拉斯测试专门添加了该属性,因此我将知道需要进行测试的某些细微差别。

但是,我很难找到正确的方法来获取该价值。这是我尝试过的:

首先,让我们将上述代码称为“ flavor”,A然后将此版本称为“不带括号” B

<div id="my-container" data-version="version$ | async">

然后,我尝试了3种Cypress:

cy.get('#my-container')
  .its('data-version') // Flavor 1
  .then((version) => {
    console.log(version);
  }

cy.get('#my-container')
  .should('have.attr', 'data-version') // Flavor 2
  .then((version) => {
    console.log(version);
  }

cy.get('#my-container')
  .invoke('attr', 'data-version') // Flavor 3
  .then((version) => {
    console.log(version);
  }

结果:

  • 1A:柏树press
  • 2A:柏树press
  • 3A:Cy柏
  • 1B:赛普拉斯找不到属性
  • 2B:赛普拉斯找到了文字'version $ | 异步”
  • 2C:赛普拉斯找到了文字'version $ | 异步”

问:是否可以从赛普拉斯检索Angular属性?

乔塔·托莱多

风味B是不可通过的,表达式不会被求值,您只需绑定字符串即可。

您应该使用以下语法:

[attr.data-version]="version$ | async"

这是记录在这里

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章