我使用赛普拉斯。我的网址中有一个视频,我想检查视频是否处于暂停状态。
我有以下html代码:
<video id="mainVideo" controls="" loop="" autoplay="autoplay" playsinline="playsinline" preload="metadata" data-aos="fade-up">
<source src="/video.mp4" type="video/mp4">Your navigator doesnt support videos.
</video>
我在测试中使用以下代码进行调试:
cy.get('#mainVideo').debug();
我看到它具有以下属性“ paused”: Property Paused
但是当我尝试使用此代码检查as属性是否为真时,找不到它:
cy.get('#mainVideo').should('have.attr', 'paused', true):
结果超时: Result test
我如何访问该“暂停”视频的“属性”?
更新: 我是这样做的:
cy.get('#mainVideo').should($video => { expect($video.get(0)).to.have.property('paused', true); });
答案 0 :(得分:1)
访问底层 <video>
元素对我有用:
cy.get('video').then(([videoEl]) => {
expect(videoEl.paused).to.equal(true);
});
它的简写版本(没有 .then(() => {}
):
cy.get('video').its('0.paused').should('equal', true);
因为 cy.get()
返回 jQuery 对象,所以您必须先访问它的 0
属性,然后才能访问任何内置的 DOM 属性。
答案 1 :(得分:0)
您可以使用document.queryselector()-
var val = document.querySelector('#mainVideo').paused
//If you get a string
expect(val).to.equal('true')
//If you get a Boolean value
expect(val).to.be.true