You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在QUnit中如何查询元素滚动条高度或检测元素是否存在滚动条?

测试Ember组件的滚动条配置

问题背景

在为Ember组件编写测试时,需要验证特定元素可滚动,同时其他区域(如body)不生成滚动条的配置是否正常。尝试多种方式后发现,assert.dom()无法直接获取scrollHeight这类DOM属性,hasProperty仅能检测属性是否等于指定值,无法完成属性间的大小比较。

最初的无效尝试

const scrollElement = assert.dom('[data-test-user-list-ul-element]');
var hasVerticalScrollbar = scrollElement.get('scrollHeight') > scrollElement.get('clientHeight');
assert.true(hasVerticalScrollbar);

可行解决方案

验证特定元素存在垂直滚动条

使用find()获取原生DOM元素,直接访问其scrollHeight和clientHeight属性做差值判断:

const element = find('[data-test-user-list-ul-element]');
const isThereADifference = element.scrollHeight - element.clientHeight;
assert.true(isThereADifference > 0);

验证body元素无滚动条

通过this.element获取body元素,确认其滚动高度与可视高度无差值:

const element = this.element;
const isThereADifference = element.scrollHeight - element.clientHeight;
assert.true(isThereADifference === 0);

待测试目标示意图

内容的提问来源于stack exchange,提问作者Display name

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 15:42:39