如何应对WatiN 2.0中针对IE9的'readonly'和'selected'属性

时间:2011-04-04 10:44:57

标签: watin

我正在使用WatiN进行网络测试,并且遇到的问题是由于对于INPUT元素的'readonly'属性,WatiN试图将值解析为 boolean ,据我所知,这是不正确的,因为该属性应写成如下:

  

< input readonly =“readonly”/>

当我尝试在运行时从WatiN访问TextField.Readonly属性时,会抛出错误,因为WatiN尝试将“readonly”解析为布尔值。我还遇到了<option>元素的'selected'属性的类似问题。

我发现很难相信没有其他人使用WatiN遇到过这些基本场景,这让我觉得我错过了一些明显的东西。有没有一种已知的解决这些问题的方法,或者这是WatiN的一个已知问题?

2 个答案:

答案 0 :(得分:2)

这个问题与IE9有关,显示IE9mode中的页面与IE8mode(和旧版本的IE)IE9的行为有很大不同。这些问题已在WatiN 2.1中得到修复

答案 1 :(得分:0)

你提到的readonly =“readonly”的语法根据w3c学校肯定是正确的,看起来你确实发现了一个bug。

查看第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;
     }
   }
 }