我有这个 HTML 元素:
<input id="" type="text" name="last_name" value="Userc7bff2d0-7faf-11e8-9884-8fe4c5df7f77-Updated" class="medium" maxlength="2000" autocomplete="off" tabindex="" data-reactid=".0.2.0.1.0.2.1.0.1.0.0.1:0.1.0.1.2:$/=10">
我想得到它value
属性来断言它已被我的测试更新。
我尝试过使用its()
:
cy
.get(selector)
.its("value")
.should("contain", "-Updated");
但得到错误:
CypressError:重试超时:cy.its() 出错,因为您的主题上不存在属性:“value”。
我也尝试过invoke
:
cy
.get(selector)
.invoke("value")
.should("contain", "-Updated");
但得到类似的错误:
CypressError:重试超时:cy.invoke() 出错,因为您的主题上不存在属性:“value”。
在这两种情况下,get() 命令的 Cypress 控制台输出都会显示该元素及其value
财产成功:
产量:输入 id="" type="text" name="first_name" value="Fake-Updated"
class="medium" maxlength="2000" autocomplete="off" tabindex="" data-
reactid=".0.2.0.1.0.2.1.0.1.0.0.1:0.1.0.0.2:$/=10"
我对这个有点难住了。如果您需要更多信息或了解发生了什么事,请告诉我。
invoke() https://docs.cypress.io/api/commands/invoke.html#在元素上调用 jquery 函数。要获取输入的值,请使用该函数val()
:
cy.get('input').invoke('val').should('contain', 'mytext')
This is not与获取相同值属性它不会随着用户输入而更新,它仅在元素呈现时预设值。要获取属性,可以使用 jquery 函数attr()
:
cy.get('input').invoke('attr', 'placeholder').should('contain', 'username')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)