如何应对“只读”问题并“选择”; WatiN 2.0 中针对 IE9 的属性

发布于 2024-10-30 04:07:55 字数 444 浏览 2 评论 0原文

我正在使用 WatiN 进行 Web 测试,并且遇到了由于以下事实而导致的问题:对于 INPUT 元素的“只读”属性,WatiN 尝试将值解析为 布尔值,就目前而言我可以看出这是不正确的,因为属性应该写成如下:

<输入readonly=“readonly”/>

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

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

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

So尛奶瓶 2024-11-06 04:07:55

此问题与 IE9 在 IE9 模式下显示的页面与 IE9 在 IE8 模式(以及旧版 IE)的行为方式有很大不同有关。这些问题已在 WatiN 2.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

故事和酒 2024-11-06 04:07:55

根据 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;
     }
   }
 }

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;
     }
   }
 }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文