我如何捕获cssutils中的CSSStyleDeclaration错误

时间:2015-11-10 01:46:40

标签: python css python-3.x error-handling

我遇到了cssutils.css.CSSStyleDeclaration检测到的CSS属性验证错误的问题。

初始代码:

from cssutils.css import CSSStyleDeclaration
invalid_css = 'color: bold-50;'        
invalid_style = CSSStyleDeclaration(cssText=invalid_css,validating=True)

输出:

ERROR Property: Invalid value for "CSS Level 2.1" property: bold-50 [1:1: color]

我试过了:

try:
    invalid_style = CSSStyleDeclaration(cssText=invalid,validating=True)
except:
    print('exception thrown....')

输出相同且print语句不运行:

ERROR Property: Invalid value for "CSS Level 2.1" property: bold-50 [1:1: color]

接下来我尝试了:

我阅读了CSSStyleDeclaration here的源代码,但看不出哪个函数会打印错误。

我的目标是捕获,检测或读取此错误;如果样式有效则输出True;如果样式无效,则输出False

1 个答案:

答案 0 :(得分:0)

在阅读了更多文档后,我发现ERROR消息是从logging system输出的。

事实证明CSSStyleDeclaration有一个返回getProperty()对象的方法cssutils.css.Property

轮流中的cssutils.css.Property对象有一个名为valid的布尔成员。记录here

解决方案使用Property而不是CSSStyleDeclaration

from cssutils.css import Property

property = Property(name='color', value='bold-50', priority='')
print(property.valid)

>> False