У меня только есть 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();
}
Спасибо за ваш ответ. Для этого мне нужно было проверить, отображаются ли сообщения об ошибках, связанные с полями ввода. Я обнаружил, что если появилось сообщение об ошибке, родительская запись поля ввода содержала текстовое поле, содержащее сообщение об ошибке, и если не было ошибок, то текстового поля не было. – user1153980
Отлично :) Теперь вам нужно только опубликовать соответствующие части вашего комментария (может быть, немного разработать, как вы сочтете нужным) в своем собственном ответе, а затем принять его. [Это разрешено и фактически поощряется в этой ситуации] (http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even-those-where-i-knew-the- ответить на ранее не спрашивать). –