Как справиться с атрибутами «только для чтения» и «выбранными» в WatiN 2.0 против IE9 - PullRequest
1 голос
/ 04 апреля 2011

Я использую WatiN для веб-тестирования, и у меня возникают проблемы, вызванные тем, что для атрибута «только для чтения» элементов INPUT WatiN пытается проанализировать значение как логическое значение , которое какНасколько я могу судить, это неверно, так как атрибут должен быть записан следующим образом:

Когда я пытаюсь получить доступ к свойству TextField.Readonly из WatiN во время выполнения, возникает ошибка, потому что WatiN пытается проанализировать «только для чтения» как логическое значение.Я также столкнулся с похожей проблемой с атрибутом selected из элемента <option>.

Мне трудно поверить, что никто не сталкивался с этими базовыми сценариями, использующими WatiN, что заставляет меня думать, что я упускаю что-то очевидное,Есть ли известный способ обойти эти проблемы или это известная проблема с WatiN?

Ответы [ 2 ]

2 голосов
/ 13 апреля 2011

Эта проблема связана с тем, что IE9 показывает, что страница в IE9mode сильно отличается от того, как ведет себя IE9 в IE8mode (и более старых версиях IE). Эти проблемы были исправлены в WatiN 2.1

0 голосов
/ 04 апреля 2011

Синтаксис readonly = "readonly", который вы упоминаете, определенно корректен в соответствии со школой w3c, и похоже, что вы действительно нашли ошибку.

Глядя на /trunk/src/Core/TextField.cs в строке 57, код равен

 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;
     }
   }
 }
...