Драйвер Selenium IE не щелкает при работе с SpecRun, но работает при запуске с SpecFlow

Предпосылки. У нас есть среда тестирования для запуска файлов функций с использованием Selenium и веб-драйвера Firefox. Все файлы функций проходят проверку при работе в Firefox. Для участников тестирования мы используем SpecFlow на локальных машинах разработчиков / QA и SpecRun на серверах CI. Тестируемый веб-сайт написан на классическом ASP.NET.

Требование. Мы хотим, чтобы тест файлов функций прошел в Internet Explorer 11.

Подход. Получите тест файлов функций для прохождения на локальном компьютере с помощью SpecFlow и SpecRun.

Подготовка машины:

  • Установите уровень масштабирования для Internet Explorer 11 на 100%.
  • Включен защищенный режим для всех зон в Internet Explorer 11
  • Установите EnableNativeEvents = false для веб-драйвера Internet Explorer (2.44.0)

Все файлы функций передаются на локальный компьютер, на котором работает SpecFlow.

Проблема: те же файлы функций НЕУДАЧИВАЮТСЯ на локальном компьютере при работе с SpecRun. Проблема в том, что EnableNativeEvents = false игнорируется и клики не работают. Я также тестировал на сервере CI, и файлы функций там тоже не работали.

Шаг файла функции для нажатия кнопки поиска работает в SpecFlow Шаг файла функции, на котором нужно нажать кнопку поиска, работает в  SpecFlow

Тот же шаг для нажатия кнопки поиска НЕ ​​РАБОТАЕТ в SpecRun (ПРИМЕЧАНИЕ: кнопка поиска имеет фокус)   Тот же шаг, чтобы нажать кнопку поиска, НЕ РАБОТАЮЩУЮ в SpecRun

Селен - это компонент, который взаимодействует с веб-сайтом. SpecFlow и SpecRun - это всего лишь тестовые программы. В чем может быть проблема?

Спасибо заранее за ваше время.


person Brian Singh    schedule 12.12.2014    source источник
comment
Как именно выглядит исключение?   -  person Saifur    schedule 13.12.2014
comment
На этом этапе исключение не создается (нажатие кнопки «Поиск»). Щелчок просто исчезает в бездне. Исключение ArgumentNullException генерируется только на следующем шаге, когда Selenium пытается взаимодействовать с сеткой результатов.   -  person Brian Singh    schedule 15.12.2014


Ответы (2)


Вы упомянули, что локальная машина Dev / QA запускает Specflow, а машина CI запускает SpecRun. Использует ли локальный компьютер Dev / QA SpecRun в качестве средства запуска модульного теста?

Если нет, попробуйте использовать то же средство запуска тестов на машине CI и посмотрите, решит ли это проблему. Стоит попробовать.

person Phonesis    schedule 18.12.2014
comment
Я пробовал запускать как SpecFlow, так и SpecRun на моем локальном компьютере. Тесты проходят с SpecFlow, но не с SpecRun из-за того, что щелчок не работает. Я еще не пробовал SpecFlow на машине CI. Подумал, что мне нужно заставить его работать с обоими, чтобы устранить любую возможную проблему, связанную с машиной. - person Brian Singh; 23.12.2014

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

capability.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS,true);

Это противоречит стандартам автоматизации, но IE работает очень хорошо, когда получает фокус.

person Umesh Chhabra    schedule 05.01.2015