Как я могу использовать WatiN с функциями показа и скрытия jQuery? - PullRequest
1 голос
/ 17 января 2012

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

Я включил ниже и скрипт 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();


            }

1 Ответ

0 голосов
/ 17 января 2012

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

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