我正在使用Cypress,我想检查用户是否可以看到给定的很长的字符串。例如,如果一些其他元素与文本重叠,因此您只能看到文本的一部分,则测试应该失败。此外,如果元素具有overflow: hidden;
并且高度不够等。如何避免这种幼稚方法可能导致的误报?
// passes if the DOM element is visible, even if you see only one line of the text!
cy.contains(someVeryLongText).should('be.visible')
1条答案
按热度按时间zpf6vheq1#
确切的方法可能会因长文本元素上方元素的CSS而异。
这里有一个最小的页面,符合您的描述。所有的父节点都有CSS
overflow: hidden
来抑制自动展开<textbox>
。当此页面显示在几百像素的小视口中时,并非所有文本都可见。
诀窍是将元素的大小与它的视口进行比较。
例如,在200x200像素下,此测试通过
将视区缩小到150像素会溢出文本,测试失败