2013-12-10 5 views
5

This page описывает api для программного создания события. Глядя на список, это указывает на то, что Chrome и Safari не поддерживают этот api для создания DragEvents.Как я могу программно создать DragEvent?

Я пытаюсь написать автоматизированные тесты для собственного поведения перетаскивания html5 в угловом приложении. Как я могу программно имитировать события перетаскивания, чтобы я мог это сделать?

Спасибо, Nate

+0

Для тестирования UI, почему бы не попробовать использовать HTTP://www.seleniumhq.org? – fassetar

+1

Мы используем огурец (похожий на селен, я думаю) на материал, который взаимодействует с сервером. Но мы обычно обрабатываем вещи, которые являются только клиентскими с хрюканьем/кармой. Я бы предпочел не переносить эти конкретные тесты в другом месте, просто потому, что они перетаскивают вещи. Но это одно из решений, которое я мог бы попробовать. – nbrustein

+0

jQuery.simulate может помочь https://github.com/jquery/jquery-simulate Разработчик является частью команды jQueryUI – charlietfl

ответ

0

Вы можете использовать цепочки действий (с селена): https://code.google.com/p/selenium/wiki/AdvancedUserInteractions#Generating_Action_chains

Мы использовали их на не angularjs приложение в прошлом для перетаскивания. Во всяком случае, так как транспортир (angularjs де-факто инструмента для тестирования приложений E2e) использует селен WebDriver, я уверен, вы можете использовать даже транспортир (https://github.com/angular/protractor), чтобы выполнить этот (с объектом «browser.webdriver»

С транспортирами дока:.

Метод browser.get загружает страницу. Транспортир ожидает, что на странице будет отображаться угловое значение, поэтому оно будет вызывать ошибку, если страница, на которую он пытается загрузить, не содержит Угловую библиотеку. (Если вам нужно взаимодействовать с неграмотной страницей вы можете получить доступ к экземпляру завернутого веб-диска напрямую с помощью браузера.driver).

Смежные вопросы