测试CSS':悬停'伪类
Testing CSS ':hover' pseudo-class
我在测试CSS:hover伪类的行为时遇到了真正的问题。我尝试了以下方法,并将事件侦听器中的test.assertEquals
包装为casper.on('mouse.move', function(){test.assertEquals(...);})
,但没有成功。我还尝试了casper.mouse.move
和casper.mouseEvent('mouseover', rightArrowId);
的多种组合,但都没有结果。
我测试的相关部分如下。我只是在测试一个在localhost上运行的网页,所有其他测试都运行得很好。
...
var rightArrowId = "#right";
casper.test.begin("On hover, navigation widgets change their opacity", function(test) {
casper.then(function() {
casper.capture("aboutToMove.png");
casper.mouse.move(rightArrowId);
test.assertEquals(customAsserts.isOpaque(rightArrowId), true, "On hover, the 'right' widget becomes opaque");
});
casper.then(function() {
casper.capture("afterMove.png");
});
casper.run(function() {
test.done();
});
...
var customAsserts = {
isOpaque: function(selector) {
return casper.evaluate(function(selector) {
return (document.querySelector(selector).style.opacity === "1");
}, selector);
}
};
此外,屏幕截图显示鼠标实际上在移动,因为我可以在第二张图片中看到悬停效果,但在第一张图片中看不到。
相关的CSS在页面加载时加载,它是这样的:
#right {
opacity: 0.35;
}
#right:hover {
opacity: 1;
}
element.style
仅访问通过元素上的style
属性定义的样式。您想要的是使用getComputedStyle()
:
isOpaque: function(selector) {
return casper.evaluate(function(selector) {
return getComputedStyle(document.querySelector(selector)).opacity === "1";
}, selector);
}
相关文章:
- 更改:活动伪类'使用jQuery的样式
- 如何正确地原型JS子伪类
- 测试CSS':悬停'伪类
- 事件侦听器 / CSS 伪类出现时滚动条
- hover添加类-或子类:悬停以影响父类
- TypeError:this.attr不是类悬停时的函数
- 如何关闭用“:目标“;伪类
- JavaScript伪类模式
- 有什么技巧可以让vw调整大小以在webkit浏览器上的:before伪类上工作吗
- 为什么getComputedStyle不适用于像:hover这样的伪类
- 伪类悬停在 JavaScript ImageSwap 中不起作用
- 为什么 removeAttr('占位符') jquery 函数没有从输入中删除:p蕾丝持有人显示的伪类
- 全屏期间的媒体查询与伪类 - CSS 样式顺序
- 使用 jQuery 的目标伪类
- 禁用 :z 索引图层上的活动伪类
- 如何检测浏览器是否支持:无效的伪类
- 如何使用CSS修改self和其他类:悬停
- 在JavaScript中,将伪类封装在IIFE中有什么好处
- 在javascript中的伪类前包含::
- 如何使用css悬停在另一个元素和伪类::之前的叠加