History
1.6.3 (unreleased)
Test on Django 6.0, Python 3.14
1.6.2 (2025-08-08)
Improved robustness of
is_element_displayed()Dropped support for Python 3.7, Django < 2.2, added testing on Python 3.13, Django 5.2
1.6.1 (2024-10-04)
Fixed bug with multi-line text not being cleared when using
fill(). This was a regression caused by a fix made for MacOS, see issues #50 and #55.
1.6 (2024-01-11)
follow_link()now acceptstext=argument, thanks @duncanjbrownFixed bug in :meth:
do_logout()for Django >= 5
1.5.5 (2023-12-05)
Fixed bug with
fill()causingonchangeevent to trigger twice.Fixed headless mode for latest Selenium with Firefox/Chrome
Avoid depending on
Keys.CONTROLas it means something different on MacOS, thanks @duncanjbrown.
1.5.4 (2023-04-19)
Added some support for Shadow DOM.
1.5.3 (2023-01-04)
Added a more robust scroll method based on Element.scrollIntoView. The old method can be used instead by setting
scroll_method = "legacyWindowScrollTo"on a test case.
1.5.2 (2022-09-21)
Added
expect_alerttoclick(), plusaccept_alert()anddismiss_alert()Added
assertion_passesutility as a convenience for using withwait_until()
1.5.1 (2022-09-12)
Fixed edge case with
<script>parsing.Added auto-waiting in
assertTextPresent()for Selenium tests.Added
scrollparameter tosubmit()andfill(), along with and theauto_scroll_by_defaultattribute.
1.5 (2022-08-22)
Added the ability to do
shortcut_login()with just a user object (no password needed).Added
withinparameter toassertTextPresent()andassertTextAbsent().This brings a small backwards incompatibility. If you were using these methods to do assertions on something outside the body element, such as the
<title>element inside<head>, those assertions will now fail. You can pass something likewithin="title"for those cases.Added the ability to
submit()a form by specifying the form element itself, rather than a button.Added Writing tests interactively with a browser documentation.
Lots of internal cleanups and layout reorg, including switching to pytest for our own test suite.
1.4.1 (2022-07-12)
Fixed crasher with Selenium 4.3 due to removed method.
1.4 (2022-04-12)
Fixed bug with
get_session_data()not being empty aftershortcut_logoutwhen using signed cookies backend.
1.3 (2022-02-15)
Added
get_element_inner_text()Added
get_element_attribute().Fixed bugs with
follow_link()and path-relative URLsAdded support for Python 3.10
Dropped support for Python 3.6. This is because:
The new
get_element_attributerequired Selenium >= 4, which is not available for Python 3.6 and belowPython 3.6 is now End Of Life
1.2 (2022-01-25)
Removed need for PyVirtualDisplay, by using “headless” options instead.
Dropped support for Python 2.7 and Django < 2.0 (!)
Dropped support for Python 3.5
Fixed
set_session_datawhen using signed cookies session backend.
1.1.1 (2021-09-23)
Fixed test suite failure under Django 3.2
Fixed warnings emitted under recent Django due to deprecations.
Tested under Django 4.0a1
1.1 (2020-01-06)
Fixes for various things that broke with more recent versions Firefox/Chrome/geckodriver/chromedriver etc.
It is possible that if you are on older versions of Firefox you may have regressions or different behaviour with handling of linebreaks e.g. sending
\r\ninto textarea.
Installation fix so that it can be installed with poetry
Tested against more recent Django versions (up to 3.1), and fixed issues.
Dropped support for Python 3.3 and 3.4
Dropped support for Django 1.8, 1.9, 1.10 (which seemed to be broken anyway?)
1.0.4
Fixed bug with setting checkboxes if a form had multiple checkboxes of the same name
Enabled installation on PyPy (doesn’t necessarily work completely).
Test against Django 2.1
Removed tests and official support for PhantomJS. (No actual functionality was changed regarding PhantomJS).
1.0.3
Deprecated
fill_by_id. Instead offill_by_id({'foo': 'bar'})you should dofill({'#foo': 'bar'}), because it is shorter and more flexible.Test against latest Firefox
Django 2.0 compatibility
Fix for Django 1.11.2 and later for MultiThreadedLiveServerMixin
1.0.2
Fixes to cope with WebTest 2.0.28. We now require django-webtest 1.9.2 or later, and only test against the latest WebTest.
Fixed some deprecation warnings
1.0.1
Fixed incompatibility with django-webtest 1.9.0 and later
1.0
Added Django 1.11 support.
Dropped official Django 1.7 support (may still work).
0.2.1
Made
get_literal_url()accept absolute URLs for Selenium (WebTest already worked by accident).
0.2.0
Added
new_browser_session()andswitch_browser_session()to the common API. These can be used to simulate multiple devices or users accessing the site. See the docs for important usage information.
0.1.9
Fix for scrolling to exactly the right place.
Added docstrings everywhere, and a base class you can inherit from for the purpose of providing autocomplete help.
0.1.8
Django 1.10 compatibility
0.1.7
Fixed performance/reliability issue caused by browsers attempting to retrieve
/favicon.icoafter visitingemptypage.
0.1.6
Fixed bug where elements wouldn’t scroll into view if html height is set to 100%
New method
get_webdriver_options()for customizing WebDriver behaviour.
0.1.5
Added get_session_data()
Improved reliability of
FuncSeleniumMixin.get_literal_url()Allow
<select>elements to be set using integers for values.Fixed issues with
.value()for radio buttons and text areasFixed bug with setting radio buttons when there are more than one set of radio buttons in the form.
0.1.4
Added support for file uploads
0.1.3
Support for filling radio buttons
More convenient support for quotes and apostrophes (” ‘) in text assertion methods.
0.1.2
Fixed wheel building - again!
0.1.1
Fixed packaging bug that caused wheels to fail on Python 3.
0.1.0
First release on PyPI.