2015-11-10 93 views
0

我遇到了一个问题,它捕获由cssutils.css.CSSStyleDeclaration检测到的CSS属性验证错误。如何捕捉cssutils中的CSSStyleDeclaration错误

初始代码:

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....') 

输出是相同的,打印语句不运行:

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

接下来我想:

我读的源代码CSSStyleDeclarationhere,但看不出有什么功能,即使打印错误。

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

+0

这看起来并不像一个适当的错误。 – Zizouz212

+0

你说得对,它是一个日志记录系统的输出。 –

回答

0

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

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

cssutils.css.Property对象依次具有名为valid的布尔成员。记录在案here

解决方案使用PropertyCSSStyleDeclaration

from cssutils.css import Property 

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

>> False