Это относится не только к тестированию HTML в Django, но и к любому другому приложению, где вам нужно тестировать поведение HTML.
Вы можете использовать библиотеки, такие как запросы , чтобы проверить формы с точки зрения браузера, используя другой метод (GET / POST / etc).
Для более детального тестирования взаимодействия с пользователем вы можете использовать Selenium , но мне лично больше нравится Splinter . В Splinter вы создаете экземпляр, называемый browser
, который вы можете использовать как настоящий браузер. Затем в браузере вы можете заполнить текстовые поля, нажимать кнопки и т. Д., А затем проверить поведение.
Вот фрагмент кода с сайта Splinter:
from splinter.browser import Browser
browser = Browser()
# Visit URL
url = "http://www.google.com"
browser.visit(url)
browser.fill('q', "#cobrateam")
# Find and click the 'search' button
button = browser.find_by_css(".lsb")
# Interact with elements
button.click()
if browser.is_text_present("did not match any documents"):
print "nobody likes us =("
else:
print "we're popular =)"
Там откроется браузер, перейдите к Google, заполните поле q, нажмите кнопку поиска, а затем протестируйте результаты поиска. Как вы можете видеть, библиотека очень проста в использовании, и вы можете провести довольно сложное тестирование с ней.