tho*_*nic 0 html testing cypress
我无法找到解释赛普拉斯断言在cy.get()
匹配多个元素时如何工作的文档。例如:
标记:
<div>
<button>one</button>
<button class='green'>two</button>
<button disabled>three</button>
</div>
Run Code Online (Sandbox Code Playgroud)
测试:
cy.get('button').should('be.disabled');
Run Code Online (Sandbox Code Playgroud)
赛普拉斯是否断言:
根据经验,我猜测这是选项 3,但我无法在文档中找到明确解决的问题。
然而
cy.get('button').click();
Run Code Online (Sandbox Code Playgroud)
点击...只有第一个按钮?他们全部?
关于断言,恐怕我们无意中编写了在我们的选择器偶然匹配多个元素并且其中一个元素恰好与断言标准匹配的情况下通过的测试。
显然,通过编写良好的选择器,或者如果我们希望返回多个元素,或者如果我们想显式断言多个元素,或者使用 or ,可以避免这种情况。我主要是寻找对行为的确认,以便我了解 Cypress 在选择多个元素(有意或无意)的情况下如何工作。.first()
.last()
.each()
这取决于断言。
这里有一个例子多个元素
<ul id="greetings">
<li>Hello</li>
<li>Hi</li>
<li>Aloha</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
cy.get('#greetings li')
.should('include.text', 'Hello')
.and('include.text', 'Hi') // "include" allows any one
.and('include.text', 'Aloha')
.and('have.text', 'HelloHiAloha')
// let's check the jQuery text() method
.invoke('text')
.should('equal', 'HelloHiAloha') // must match all 3 texts
Run Code Online (Sandbox Code Playgroud)
将会include.text
适用于任一元素,但have.text
适用于组合的所有元素。
cy.get('#greetings li')
.should('have.text', 'Hello') // fails
Run Code Online (Sandbox Code Playgroud)
关于什么be.disabled
?
残疾人
使用 .is(':disabled')断言所选内容中至少有一个元素被禁用。
作为一个相反的例子,
属性(名称[,值])
使用 .attr()断言选择的第一个元素具有给定的属性。(可选)还可以断言特定值。返回值可用于链接。
一般来说,Cypress 遵循其使用的库制定的规则,因此本文档对于您的问题来说是一个很好的参考。
归档时间: |
|
查看次数: |
170 次 |
最近记录: |