2015-11-10 91 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