Как проверить все ссылки меню JavaScript в WatiN? - PullRequest
1 голос
/ 16 сентября 2011

Я новичок в тестировании WatiN. У меня проблема с тестированием страницы сайта с помощью выпадающих ссылок меню JavaScript.

Понятия не имею, как справиться с этой задачей ..... Я должен обработать все ссылки и перейти на каждую страницу и выполнить дальнейшие тесты.


Надеюсь, вы неправильно поняли мой вопрос, рассмотрим пример на этом сайте. http://www.andrewsellick.com/examples/sliding-side-bar/# Мои тестовые сайты включают в себя все виды меню javascript, поэтому моя главная идея - выполнить javascript, и я думаю, что watin - лучший способ сделать это, если только не используется библиотека rhino, которая имеет минимальное использование .....

Мне нужно выяснить ссылки и использовать платформу watin, так как я должен тестировать десятки сайтов, и я должен автоматизировать процесс извлечения этих ссылок автоматически, и по крайней мере должен быть в состоянии открыть все эти ссылки

Любое, как спасибо за ваш ответ. но это не решило мою проблему ......

Ответы [ 2 ]

0 голосов
/ 19 сентября 2011

Конкретный ответ:

Для данного примера ссылки приведен код, который будет расширять скользящее меню и мигать / выводить текст каждой ссылки.

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

ie.GoTo("http://www.andrewsellick.com/examples/sliding-side-bar/#");

System.Threading.Thread.Sleep(2500);
ie.Link("sideBarTab").Click();

foreach (ListItem currItem in ie.Div("sideBarContents").Lists[0].ListItems)
{
    currItem.Links[0].Flash(2);
    Console.WriteLine("link text: " + currItem.Links[0].Text);
}

Примечание: строго говоря, вам даже не нужно расширять слайд-меню, поскольку ссылки существуют и просто скрыты.Расширение меню - хорошая идея, так как это то, что будет делать пользователь.

Используется: IE8 и WatiN 2.1

Общий ответ

Чтобы получитьДля каждой ссылки на данной странице вы должны выполнить итерацию Links collection

Пример: (записано из памяти, не проверено)

foreach (Link currLink in ie.Links)
{
     //do stuff
}

С этим вы будетестолкнуться с проблемами некоторых ссылок огня всплывающих окон.Некоторые ссылки расширяют меню.Некоторые ссылки ведут на разные страницы.Некоторые ссылки и т. Д. И т. Д. Кроме того, вам нужно будет перебирать каждый фрейм, так как я считаю, что они рассматриваются как отдельная область, и вышеприведенный foreach не будет видеть никаких ссылок в фреймах.Относительно общее решение вполне возможно, ЕСЛИ ваше приложение написано с хорошими именами / CSS-классификацией / чем-то таким, что вы можете знать, что будет делать ссылка, основываясь на ее названии / CSS-классе / чем-то.

0 голосов
/ 16 сентября 2011

Планируете ли вы внедрить механизм навигации или вы планируете внедрить автоматическую проверку ссылок, которая будет проверять, является ли каждая из ссылок действительной или нет.

Я бы предложил сначала внедрить механизм навигации как часть тестовой среды, а ваши тесты - перемещаться по соответствующим страницам с помощью этой инфраструктуры.

Хороший пример размещен здесь http://fmair.blogspot.com/2011/03/watin-on-crack.html

Или вы могли бы просто иметь одну функцию, которая принимает разделенную трубами строку и идентифицирует ссылки в пользовательском интерфейсе и щелкает по ним для дальнейшей навигации.

С уважением,

Ашиш Нармен

...