我想编写一个 python 脚本来检查/测试网站上的 css。
selenium webdriver 配备了
value_of_css_property(property_name)
,可用于提取元素的 css 属性值。这可以与预期值进行比较。然后 Selenium 可以相互作用,如果需要,记录属性的变化并再次与预期值进行比较。或捕获元素的屏幕截图,然后使用 PIL 将屏幕截图与预期的屏幕截图进行比较(python needle 所做的事情),但是由于尺寸和位置会根据分辨率/设备而变化我不知道这种方法的可行性如何。
关于从上面可以做什么的任何想法或任何其他建议?
最佳答案
我们一直在使用 Galen Framework对于这个特殊的“视觉测试”问题:
Layout testing seemed always a complex task. Galen Framework offers a simple solution: test location of objects relatively to each other on page. Using a special syntax and comprehensive rules you can describe any layout you can imagine
Galen Framework is designed with responsiveness in mind. It is easy to set up a test for different browser sizes. Galen just opens a browser, resizes it to a defined size and then tests the page according to specifications
我们正在用 JavaScript 编写 Galen 测试,有一个 Python port ,但不确定它的最新程度。
needle
是一个很棒的工具,但图像总体上“笨拙”并且难以处理和维护。如果您将尺寸和分辨率具体化,事情就会变得更容易。
使用 value_of_css_property()
始终是一种选择,但它可能无法很好地扩展,并且要避免违反 DRY principle 将是一项挑战。 .考虑某种抽象层来检查您的 CSS 属性。例如,在您的测试中使用具有许多必需属性的预定义样式的“样式”配置(例如,应用程序中的每个“提交”按钮都需要具有 btn
和 btn- primary
类并且需要具有特定的大小、字体大小、背景和边框颜色)..然后您可以为每个 page object 配置一个预定义的样式页面对象中的字段..只是想法。
关于python - 使用 python selenium 自动测试 CSS 和视觉异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48102099/