Тестирование с Cucumber и Selenium: как мне увидеть то, что он видит в браузере - PullRequest
3 голосов
/ 11 ноября 2010

Я тестирую сценарий в Rails с Cucumber, и он возвращается, говоря, что не может найти ссылку для редактирования, на которую можно нажать. Если я сам пойду на страницу, она там. Очевидно, я делаю что-то не так, но не вижу этого.

Если я добавлю тег @selenium перед моим сценарием, он выполнит тесты в Firefox. Но если я вижу, что браузер открывается и закрывается, и, если он не требует от меня взаимодействия (например, для подтверждения удаления), он проходит мимо, прежде чем я вижу, что он делает.

Есть ли способ увидеть то, что он видит в браузере, и пошагово пройти по нему?

Ответы [ 7 ]

8 голосов
/ 11 ноября 2010

Чтобы увидеть, что отображается в браузере в определенный момент времени, добавьте этот шаг в свой сценарий:

Then show me the page

Возможно, вы не получите всю стилизацию, это зависит.

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

Then /^I pause for a while$/ do
  sleep 30
end

Это должно дать вам 30 секунд, чтобы просмотреть страницу, пока она отображается в браузере.

7 голосов
/ 17 ноября 2010
2 голосов
/ 09 июля 2012

Я решил это путем реализации Cucumber step

Then /^Wait for keypress$/ do
  STDIN.getc 
end

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

1 голос
/ 30 сентября 2011

Если вы хотите увидеть то, что видит селен, добавьте к вашей функции следующее:

@leave_the_window_open
@javascript
Feature: The failing feature you want to click through
(...)

Чтобы все заработало. вам нужно следующее After определение где-нибудь в вашем пути загрузки огурца:

After('@leave_the_window_open') do |scenario|
  if scenario.respond_to?(:status) && scenario.status == :failed
    print "Step Failed. Press Return to close browser"
    STDIN.getc
  end 
end

см. Пример здесь

Вуаля: Теперь окно браузера остается открытым, пока вы не нажмете Enter на консоли. Вы можете кликать и проверять все.

0 голосов
/ 04 сентября 2013

С помощью Ruby вы можете добавить гем pry-nav - https://github.com/nixme/pry-nav

Добавьте следующее в свой гемфайл: gem 'pry' gem 'pry-remote' гем 'pry-nav'

Затем добавьте строку «binding.pry» к определению вашего шага, где вы хотите разбить

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

0 голосов
/ 18 января 2012

Обычно я использую метод ask, чтобы приостановить действие, чтобы увидеть, что происходит.Я буду использовать Firebug для изучения проблемы, пока все приостановлено.См. здесь для получения драгоценного камня, который позволяет использовать Firebug с Cucumber для просмотра CSS / JS и т. Д.

Пример метода Ask:

res = ask('Where is that error coming from??')

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

Другой вариант - использовать отладчик ruby ​​и проверять все, что работает. Здесь - это вопрос SO, объясняющий, как это работает.

0 голосов
/ 08 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...