我目前正在尝试学习赛普拉斯的自动化测试。
我要查找并单击此元素:
<input type="email" class="form-control text-ellipsis-global GKMU5SYDM3B" id="gwt-uid-1419" data-empty="true">
我不能使用ID或“ GKMU5SYDM3B”,因为它们都是由GWT随机生成的。
我希望我的命令类似于此:
cy.get('input').type('email').click().type('fake@email.com')
.should('have.value', 'fake@email.com')
我尝试了此操作,并收到以下错误消息:
CypressError: cy.type() can only be called on a single element. Your subject contained 4 elements.
答案 0 :(得分:3)
这应该有效。
cy.get("[type='email']")
cy.get("[type='email']").type('myemail@domain.com')
我经常做的事情是,先在浏览器控制台的JQUERY中尝试一下。您不必单击它即可键入它。
如果周围有一些父元素,例如div,则可能还希望包含它。
<div id='parent'>
<input type="email" class="form-control text-ellipsis-global GKMU5SYDM3B" id="gwt-uid-1419" data-empty="true">
</div>
所以你会去
cy.get('#parent').find("[type='email']").type('myemail@domain.com')
答案 1 :(得分:-1)
实际上您想验证电子邮件字段中输入的“电子邮件”。
首先,使用这种定位器输入“email”。
cy.get("[type='email']").type('fake@email.com');
在“电子邮件”字段中输入后,您可以通过此断言进行验证。
cy.get("[type='email']").should('have.value', 'fake@email.com')