Я немного использовал бесплатную версию тестовой среды WebAii (выпущенной Art Of Test до того, как они были приобретены Telerik), поэтому я знаю, что она в основном работает. Так что проблема, с которой я столкнулся сейчас, совершенно сбивает меня с толку.
Я пытаюсь проверить навигацию на существующем сайте и просматриваю последовательность страниц. Я попадаю на страницу, которая имеет (среди прочего) две кнопки. Одним из них является кнопка «назад», которая является элементом ввода типа button с обработчиком onclick, который вызывает функцию javascript, которая просто вызывает history.back (). Другой - кнопка отправки.
В WebAii нет проблем с поиском кнопки отправки. Но когда я говорю ему, чтобы щелкнуть по нему, это, по всей видимости, нажав кнопку назад.
Вот соответствующий HTML с сайта:
<div align="right">
<table border="0" width="200" cellpadding="8" style="border-collapse: collapse" bordercolor="#E0DFE3">
<tr>
<td>
<input type="button" value="<- Back" name="B2" onclick="cancelChange()" >
</td>
<td>
<input type="submit" value="Maint Details ->" name="lnkSubmit">
</td>
</tr>
</table>
</div>
А вот и тестовый код:
HtmlInputSubmit maintDetailsButton = Find.ByAttributes<HtmlInputSubmit>("value=Maint Details ->");
maintDetailsButton.Click();
Assert.IsTrue(ActiveBrowser.Url.Contains(expectedPage), "URL {0} does not contain expected page {1}", ActiveBrowser.Url, expectedPage);
Последовательность операций работает нормально, когда я нажимаю на нее вручную, поэтому я не вижу доказательств того, что это проблема сайта. Я видел множество свидетельств того, что на самом деле это нажатие кнопки «Назад», а не кнопки «Подробная информация об обслуживании». (Fiddler показывает, что при отправке запроса на клик запрос не выдается - в соответствии с выполнением history.back (), поскольку браузер просто переотображается из своего кэша. Когда я нажимаю, он фактически переходит на предыдущую страницу. И, наконец, если я уберу атрибут «onclick» с кнопки «назад», чтобы нажатие на кнопку ничего не делало, то при выполнении тестового кода сайт ничего не делал - просто оставался на текущей странице.)
Я полностью сбит с толку. Кто-нибудь может дать мне подсказку?