使Cypress与StencilJS组件配合使用时出现问题

时间:2019-03-06 22:20:16

标签: cypress stenciljs

我对Angular应用程序进行赛普拉斯测试时遇到了一些不稳定的现象:以我的本地机器为目标时,它们工作正常,但是将CYPRESS_BASE_URL设置为运行相同代码的远程计算机时,则某些测试失败。 / p>

我认为我已经将范围缩小到了StencilJS组件的交互。考虑:我有一种形式要求使用常规<input>元素来输入用户名,密码等,以便:

<input formControlName="username" type="text">

...等等。这些测试可以可靠地工作,这意味着这些语句可以正确填写以下字段:

cy.get('[formControlName=fullname]').type(name)
cy.get('[formControlName=username]').type(username)
cy.get('[formControlName=password]').type(passwrod)

我还有另一种形式,该形式使用具有嵌入式<input>的StencilJS组件,因此元素看起来像这样:

<my-input ngDefaultControl formControlName="newPassword" type="password"></my-input>
<my-input ngDefaultControl formControlName="confirmPassword" type="password"></my-input>

然后我的代码尝试填写两个字段:

cy.get('[formControlName=newPassword]').find('input').type(updated_password).blur()
cy.get('[formControlName=confirmPassword]').find('input').type(updated_password).blur()

但是这里的测试失败了:它实际上是在填写第一个密码,前进到第二个字段并填写第二个密码-但随后第一个字段神秘地变成空白!

模板组件是<input>周围的简单包装:

return (
  <input type={ this.type }
    value={ this.value }
    placeholder={ this.placeholder }
    onChange={ this.handleChange.bind(this) }></input>
);

我尝试使用.blur()和不使用.then()。 我已经尝试过和不与self.loginButton.isEnabled = true self.loginButton.layer.opacity = 1 链接。 但是,上述测试对于远程目标始终失败,对于本地目标计算机始终成功。 关于如何可靠地进行这项工作还有其他建议吗?

0 个答案:

没有答案