2012-01-17 2 views
1

У меня только есть WatiN. Моя компания использует шоу jQuery и скрывает функции для отображения сообщений об ошибках. Я хочу, чтобы эти сообщения отображались в правильные времена. Я использовал тестовый скрипт из загрузки jQuery, который использует show и hide. Я добавил значения id в тег div и один из закрытых тегов сканирования. Я не смог обнаружить в своем коде, когда отображается сообщение.Как я могу использовать WatiN с показом jQuery и скрывать функции?

Я включил ниже оба сценария jQuery и мой код. Сценарий имеет две кнопки: одну для отображения и одну для скрытия сообщения. Мой код нажимает кнопку «Скрыть» и проверяет атрибуты видимости и ширины, а затем удаляет кнопку «Показать» и просматривает одни и те же атрибуты. Я вижу на экране, что текст действительно скрыт, а затем показан. Когда я устанавливаю точки останова, в обоих случаях видимость устанавливается как «унаследованная», а ширина - «авто». Что я могу сделать, чтобы провести различие между этими двумя случаями?

jQuery code: 
<!DOCTYPE html> 
<html> 
<head> 
     <style> 
     span { background:#D8BFD8; padding:3px; float:left; } 
     </style> 
     <script src="jquery-1.7.1.js" type="text/javascript"></script> 
    </head> 
<body> 
    <button id="hidb">Hide</button> 
    <button id="showb">Show</button> 
    <div id="dynamicOutput"> 

    <span id="jquery">jQuery</span> <span>is</span> <span>easy</span> 
    <span>to</span> <span>use</span> <span>and</span> 
    <span>gives</span> <span>dynamic output..</span> 

    </div> 

<script> 
    $("#hidb").click(function() { 
       $("span:last-child").hide("fast", function() { 
    // use callee so don't have to name the function 
     $(this).prev().hide("fast", arguments.callee); 
     }); 
    }); 
$("#showb").click(function() { 
    $("span").show(2000); 
}); 

</script> 
</body> 
</html> 

Test code: 

[TestMethod] 
     [STAThread] 
     public void lookAtElements() 
     { 

       var browser = new IE("http://localhost/test/jqHIdeShowText.html"); 

       Element el2 = browser.Span(Find.ById("jquery")); 
       Element el = browser.Div(Find.ById("dynamicOutput")); 

       string att; 
       string att2; 
       string width; 
       string width2; 
       string msg; 
       string msg2; 


       Button btn = browser.Button(Find.ById("hidb")); 
       btn.Click(); 


       width = el.Style.GetAttributeValue("width"); 
       width2 = el2.Style.GetAttributeValue("width"); 

       System.Threading.Thread.Sleep(5000); 

       el.Parent.Refresh(); 
       el.Refresh(); 
       el2.Refresh(); 

       width = el.Style.GetAttributeValue("width"); 
       width2 = el2.Style.GetAttributeValue("width"); 
       att = el.Style.GetAttributeValue("visibility"); 
       att2 = el2.Style.GetAttributeValue("visibility"); 
       msg = el.Text; 
       msg2 = el2.Text; 


       btn = browser.Button(Find.ById("showb")); 
       btn.Click(); 
       System.Threading.Thread.Sleep(5000); 

      el.Parent.Refresh(); 
      el.Refresh(); 
      el2.Refresh(); 

       att = el.Style.GetAttributeValue("visibility"); 
       att2 = el2.Style.GetAttributeValue("visibility"); 
       width = el.Style.GetAttributeValue("width"); 
       width2 = el2.Style.GetAttributeValue("width"); 
       msg = el.Text; 
       msg2 = el2.Text; 

       browser.Close(); 


      } 

ответ

0

Попробуйте протестировать атрибут display вместо:

if (el.Style.GetAttributeValue("display") == "none") { 
    // The element was hidden through hide(). 
} 
+0

Спасибо за ваш ответ. Для этого мне нужно было проверить, отображаются ли сообщения об ошибках, связанные с полями ввода. Я обнаружил, что если появилось сообщение об ошибке, родительская запись поля ввода содержала текстовое поле, содержащее сообщение об ошибке, и если не было ошибок, то текстового поля не было. – user1153980

+0

Отлично :) Теперь вам нужно только опубликовать соответствующие части вашего комментария (может быть, немного разработать, как вы сочтете нужным) в своем собственном ответе, а затем принять его. [Это разрешено и фактически поощряется в этой ситуации] (http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even-those-where-i-knew-the- ответить на ранее не спрашивать). –

Смежные вопросы