не может найти элементы управления на странице, но только при запуске через selenium-сервер - PullRequest
1 голос
/ 21 января 2011

У меня есть набор тестов, которые я разработал, используя Selenium IDE в Firefox. Тесты работают нормально и все проходят. Теперь я пытаюсь перенести их на C # и запустить тесты для IE, используя MSTest и selenium-server. Вот последовательность событий:

  1. Запустите все тесты на Firefox через Selenium IDE. Все тесты проходят.
  2. Экспорт тестов в MSTest (Экспорт в Nunit, переименование некоторых вещей и т. Д.)
  3. Запустить selenium-server-1.0.3
  4. Запустите тесты в VS2008. Настройка Selenium: selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost/theSite/");; обратите внимание, что я могу просматривать http://localhost/theSite/ просто отлично.

    4а. Подтвердите, что тест запускает Firefox. Получил результат: 17: 00: 30.290 ИНФОРМАЦИЯ - Подготовка профиля Firefox ... 17: 00: 33.842 ИНФОРМАЦИЯ - Запуск Firefox ...

  5. Первый тест (waitForText "Login" в элементе управления "ctl00_TopNavBar_LoginStatus1") не пройден. Не могу найти контроль. if ("Login" == selenium.GetText("id=ctl00_TopNavBar_LoginStatus1")) break; или же if ("Login" == selenium.GetText("ctl00_TopNavBar_LoginStatus1")) break;

  6. Все остальные тесты тоже не пройдены - по той же причине. Каждый тест имеет waitForText в верхней части.

Попробовал запустить тест в * chrome, * iexploreproxy и * firefox. Все терпят неудачу по той же причине.

Попробовал сбросить скриншот с помощью selenium.CaptureEntirePageScreenshot("c:\\temp\\screenshots\\seleniumSite.png", "background=#FFFFFF");, а скриншот - просто белая полоса.

Итак, мой вопрос: как мне отладить это и выяснить, в чем реальная проблема? Ясно, что страница будет отображаться и тесты пройдут. Просто когда я пробую эти тесты в Selenium-RC, он так плохо проваливается . Есть ли в Selenium IDE некоторые ошибки, связанные с экспортом тестов в C #? (Я заметил одну ошибку).

1 Ответ

1 голос
/ 21 января 2011

Вы исполняете selenium.Start() и selenium.Open()?Вы видите страницу, открытую в браузере?

Полная инициализация должна выглядеть примерно так:

selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost/");
selenium.Start();
selenium.Open("/theSite/");

Важное примечание! тестируйте свои тесты IDE, начиная спустая страницаКроме того, при использовании среды IDE, если команда имеет только один параметр, поместите ее в поле «Цель», даже если это не имя элемента управления.

...