我正在使用WatiN进行网络测试,并且遇到的问题是由于对于INPUT元素的'readonly'属性,WatiN试图将值解析为 boolean ,据我所知,这是不正确的,因为该属性应写成如下:
< input readonly =“readonly”/>
当我尝试在运行时从WatiN访问TextField.Readonly
属性时,会抛出错误,因为WatiN尝试将“readonly”解析为布尔值。我还遇到了<option>
元素的'selected'属性的类似问题。
我发现很难相信没有其他人使用WatiN遇到过这些基本场景,这让我觉得我错过了一些明显的东西。有没有一种已知的解决这些问题的方法,或者这是WatiN的一个已知问题?
答案 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;
}
}
}