How to cope with 'readonly' and 'selected' attributes in WatiN 2.0 against IE9

六眼飞鱼酱① 提交于 2020-01-25 04:05:25

问题


I'm using WatiN for web testing, and am encountering issues caused by the fact that for the 'readonly' attribute of INPUT elements, WatiN is attempting to parse the value as a boolean, which as far as I can tell is incorrect, as the attribute should be written as follows:

<input readonly="readonly" />

When I try to access the TextField.Readonly property from WatiN at runtime, an error is thrown because WatiN attempts to parse 'readonly' as a boolean. I also encountered a similar issue with the 'selected' attribute of the <option> element.

I find it hard to believe that nobody else has encountered these basic scenarios using WatiN which makes me think I am missing something obvious. Is there a known way to work around these issues or is this a known issue with WatiN?


回答1:


This issue has to do with IE9 showing a page in IE9mode differs greatly from how IE9 in IE8mode (and older versions of IE) behaves. These problems have been fixed in WatiN 2.1




回答2:


The syntax of readonly="readonly" that you mention is definitely correct according to w3c school and it looks like you have indeed found a bug.

Looking at /trunk/src/Core/TextField.cs in line 57 the code is

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

so you should probably just change it to something like this, although I am not using the fancy ? and : syntax :-)

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


来源:https://stackoverflow.com/questions/5537385/how-to-cope-with-readonly-and-selected-attributes-in-watin-2-0-against-ie9

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!