2011-04-04 14 views
1

我正在使用WatiN進行Web測試,並且遇到由於INPUT元素的「只讀」屬性導致的問題,WatiN是試圖解析值作爲布爾,這據我可以告訴不正確,作爲屬性應寫爲如下:如何應對WatiN 2.0中針對IE9的「只讀」和「選定」屬性

<輸入只讀=「只讀」 />

當我嘗試在運行時訪問WatiN的TextField.Readonly屬性時,發生錯誤或者是因爲WatiN嘗試將「只讀」解析爲布爾值而引發的。我還遇到了<option>元素的「selected」屬性的類似問題。

我很難相信沒有人遇到過使用WatiN的這些基本場景,這讓我覺得我錯過了一些明顯的東西。有沒有已知的解決這些問題的方法,或者這是WatiN的一個已知問題?

回答

2

這個問題與IE9顯示IE9mode頁面做從IE9如何IE8mode(及以上版本的IE)的行爲有很大的不同。這些問題已在WatiN 2.1中得到解決

+0

謝謝Jeroen - 我剛剛升級到版本2.1,它確實解決了IE9問題。非常感謝你。 – 2011-04-13 08:11:52

0

根據w3c學校的說法,readonly =「readonly」的語法是絕對正確的,看起來您確實發現了一個錯誤。

在第57行,在/trunk/src/Core/TextField.cs展望代碼

public virtual bool ReadOnly 
{ 
    get 
    { 
    var value = GetAttributeValue("readOnly"); 
    return string.IsNullOrEmpty(value) ? false : bool.Parse(value); 
    } 
} 

所以你應該只是將其更改爲這樣的事情,雖然我不使用花哨的?和:語法:-)

public virtual bool ReadOnly 
{ 
    get 
    { 
    string value = GetAttributeValue("readOnly"); 
    if (value.ToLower() == "readonly") 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
    } 
} 
+0

謝謝,我已經通過Reflector發現了實現,但我寧願不必修改源代碼就可以避免它。我想知道這是一個已知的問題還是我錯過了一些東西。 – 2011-04-05 11:38:39