CYPRESS - 不能做出 THEN => IF VISIBLE 声明
Posted
技术标签:
【中文标题】CYPRESS - 不能做出 THEN => IF VISIBLE 声明【英文标题】:CYPRESS - Cant make a THEN => IF VISIBLE statement 【发布时间】:2020-05-27 18:49:14 【问题描述】:好的,
情况如下:
在我在网站上进行的测试中,它总是有一个表格,但是当该表格没有元素时,它会被隐藏。仅当该表具有可见元素时,我才需要执行操作。如果没有,请继续下一个测试。
所以,例如,如果表是空的,我写这个 --- cy.get('element', timeout: 60000).should('be.visible') --- 测试时间out,这是正确的,因为表是空的,因此不会变得可见。
但是,当然,我需要测试不要超时,我需要在规定的时间过去后,继续进行下一个测试。
所以,我想到了这个:
cy.get('element').then(($table) =>
if ($table.is(':visible'))
cy.log('JUST TESTING')
)
问题是,它总是输入 if 并打印控制台日志 JUST TESTING。这意味着 if visible 条件不起作用。
有什么想法吗?
谢谢!
【问题讨论】:
【参考方案1】:所以你有两种情况要测试,一种是表格有元素,另一种是表格没有元素。我会将其拆分为两个测试用例并填充/不填充表格,以便它显示或不显示。恕我直言,在一个测试用例中执行此操作并不能证明该表是否正常工作,因为您如何知道您所看到的内容是正确的。您可能会遇到表格应该显示的情况,因为它有内容,但没有,但是您的测试将始终通过,因为它不知道表格的状态应该是什么。所以像......
describe('Testing my table', () =>
context('table is populated', () =>
beforeEach
// populate the table with data
it('should show the table, () =>
// Some testing stuff in here to check the table is showing
);
context('table is NOT populated', () =>
beforeEach
// Any set up you need for a non-populated table
it('shouldn't show the table, () =>
// Check we can't see the table
);
【讨论】:
以上是关于CYPRESS - 不能做出 THEN => IF VISIBLE 声明的主要内容,如果未能解决你的问题,请参考以下文章