Я тестирую внутренний сайт, созданный на витрине магазина Magento.Во время оформления заказа некоторые части формы скрыты (стиль: отсутствует) до заполнения предыдущего раздела.Эти части обычно нарушали бы сценарий, но использование when_present для первого элемента скрытой формы решило эту проблему.
Однако кнопка Submit Order не работает с этими же методами.Сегодня я работал с нашим ведущим разработчиком, чтобы убедиться, что единственное различие между этой кнопкой и предыдущими кнопками формы заключается в том, что загружается новая страница (новый URL, новый статус «выполнено» в браузере).
кристально чистый:
- Пользователь вводит имя, адрес, адрес электронной почты и щелкает «Продолжить» => JS «загрузка» анимации вращается, когда панель «Общие» закрывается, а панель «Способ доставки» расширяется, все на одной странице.
- Пользователь нажимает кнопку «Отправить заказ» => JS «загрузка» анимации вращается, после завершения браузер переходит к / success / (новая страница) с проверяемыми элементами.
- Если достаточно временичтобы завершить (оператор сна), тест проходит успешно.
Вот несколько-псевдокод формы и нажмите кнопку Отправить:
def complete_form(data = {})
data = DEFAULT_DATA.merge (data)
select_guest
continue_button.click #proceed to billing panel
enter_billing_and_shipping_info(data)
enter_additional_information(data)
place_order_button.when_present.click #submit form
#sleep 2 #this succeeds, but is undesirable
thank_you_message.wait_until_present #I do not actually appear to wait until anything is present
end #
def enter_billing_and_shipping_info(data)
billing_first_name.when_present.value = data['First Name'] #I work!
billing_last_name.value = data['Last Name']
#more fields
end #
Из шагов:
thank_you_message.should include("Yippee")
Сценарий завершается сбоем двумя различными способами в зависимости от того, как быстро отвечает сайт:
- завершается с сообщением о том, что ожидаемое сообщение с благодарностью не найдено - scrПри обнаружении ошибки во время ошибки отображается страница «Оформление заказа», а НЕ страница «Спасибо», с отображаемой анимацией «загрузки».(ожидается, что «Оформить заказ» будет включать «Ваш заказ был получен») * Ошибка 1024 *
- с ошибкой «Элемент не найден в кэше» - на снимке экрана в этом случае отображается страница «Спасибо», содержащая текст, который мыищите
Другие методы, такие как Watir :: Wait.until или до {} do, привели к тому же поведению.
- Windows 7 6432-разрядная версия Windows XP
- ruby 1.9.2p290 (2011-07-09) [i386-mingw32]
- огурец (1.0.2)
- rspec (1.3.2)
- watir-webdriver (0.3.0)
Обновление 8-15 Попытка решения № 1:
place_order_button.when_present.click #complete form
ajax_submit_image.wait_while_present
Тот же конечный результат - сценарий завершается без сообщения об успехе, скриншот показывает загрузочную картинку Ajax в середине вращения.И этот, и предыдущий метод ДОЛЖНЫ работать, но, похоже, не имеют никакого эффекта.Я проверил, что могу получить доступ к изображению, используя локаторы в скрипте (img src match).