有测试CSS的方法吗?

| 我知道这个想法以前曾提出过-特别是在这里和这里-但似乎没有给出解决方案。在很大程度上,它被认为是“很好但不可能”或“愚蠢的想法”。 我的想法是使用jQuery计算计算值并将其与期望值进行比较。例如,我可以有一个“ 0”,并且从理论上讲,我应该知道它的字体大小,颜色,字体粗细等。我可以使用jQuery来检查它实际上是否是该字体大小,如果不是,则返回一个错误。 这样做的好处是,我不必坐在每个浏览器的检查清单中-\'此标题是否为粗体?这些链接是否带有下划线?此列是否为110px宽?\'-每次更改CSS时。 我的问题-这是可行的主意吗?实施类似的主要问题是什么?有人做过类似的事情吗? 编辑:也欢迎任何关于如何实际呈现错误的想法。我想到了在相关页面的标题中使用JavaScript文件,然后在页面中添加内容的方式,类似于Firebug的页面版本。但是,我担心这样会影响页面的呈现。另外,我可以将其登录到控制台,但是我认为IE6没有合适的控制台,并且为每个被测页面打开每个浏览器的每个控制台似乎也很烦人。
已邀请:
即使有办法做到这一点,我仍然觉得需要手动检查。 您提供的示例并不是通常要担心的事情类型,而是定位和箱式模型之类的东西。如果我说“ 1”,我很有信心在IE中会变成红色。 获取计算值并不会真正帮助他们找到如何呈现它们,实际上,听起来总比启动IEtester还要做更多的工作。凭借一点经验,您可以快速学习检查跨浏览器兼容性所需的类型,并且随着浏览器的不断完善,这个问题变得越来越少。 一种可以帮助您的技术:在IE中进行设计。是的,它确实很烂,但是您通常会发现,当您在IE7中运行它,然后在FF,IE8或IE6中进行测试时,它非常接近,或者与说Chrome相比,它们之间的差异很容易解决,然后再次检查IE7。我知道\“跨浏览器\\”不仅封装了IE,还让我们不要自欺欺人。 IE是问题浏览器,使用最广泛。 结论:如果有用于此目的的工具,那么它必须真是太神奇了,以防止我进入真正的浏览器。我认为这就是为什么人们将硒作为对此的解决方案。
嗯...让听众决定您要测试的内容,并将其作为客户关系的一部分。 您的流量来源是什么?查看日志,分析等。老实说,我不在乎Opera的外观(例如),如果按照传统,Opera等于总流量的1%-除非那是客户端的最爱浏览器,但您的意思是-精打细算,而不是每一个都可用。 一方面,我认为这个主意很酷,但我不相信它-每次更新2个月后就会过时了(虽然有点讽刺,但仍然)...我会最终用我自己的眼睛看。整个想法听起来像是自动鞋带,或诸如此类的东西-对我而言无济于事。此外,“我用\'Kick @ cSS \'!! \进行了测试”永远不会使您与客户脱节。 如果您遵循标准,则测试和调试通常会很快(只要您在进行测试即可)。不要用内嵌元素等包装您的块元素,这将有助于使事情顺利进行,并且每个人都满意且合规。
我对一个相关/相似的问题发布了相同的答案: 自动测试CSS和HTML前端编码 如果您正在寻找为回归测试而构建的工具,请查看: https://github.com/bfirsh/needle 基本上,它会为您选择的部分截图(检查其示例)并进行比较。如果它们彼此差异太大,则测试将失败。它使用的是Selenium,因此您最好检查其他断言,例如z-indizes,font-sizes等。
这样做的好处是,我不必坐在每个浏览器的检查清单中-\'此标题是否为粗体?这些链接是否带有下划线?此列是否为110px宽?\'-每次更改CSS时。 当然可以,但秘密是您现在不必这样做。 如果此标头不是粗体,则没人会丧命或损失任何金钱。有人会注意到*,它会以最小的努力得到修复。 与为站点上每个页面上的每个元素编写自动化测试相比,最好花时间设计CSS,以使样式相互隔离(从而不太可能导致难以跟踪的错误)。 要做到这样的工作所需的工作量与正确编写代码的难度(不多)和错误代码的后果(也都不多)不成比例。 实际上,您将如何指定要描述的测试类型?您需要告诉测试跑步者应该检查哪些元素,以及每个元素的样式是什么。这就是CSS的作用。也许您要检查的元素的定义可能更具体地取决于您的CSS选择器(例如,分别选择每个页面上的每个元素),但是这在开始编写和维护时都非常耗时。 (仅详细说明必要的工作:对于您要描述的跨浏览器渲染测试,您必须运行实际的Web浏览器(使用诸如Selenium之类的东西),这意味着您需要多台计算机(对于IE)其中必须是您的测试框架可以访问的。这将是个人运行的噩梦,并且要提供作为服务的大量计算工作–请问运行Litmus的人员。) 抱歉,这并不是您实际问题的答案,但是测试驱动的开发可能有点像宗教,因为人们在不真正了解它的方式的情况下就受到了启发(令人钦佩),这非常令人鼓舞。工作,或实际在您的时间提供可观回报的地方。 *(或者,根据我的经验,没有人会注意到,您会花几秒钟的时间来思考自己职业生涯的意义,然后再去买早上的第三杯啤酒。)

要回复问题请先登录注册