Changelog
=========
.. |topic| raw:: html
Topic
.. |released_on| raw:: html
Release date
.. |end| raw:: html
0.3.0
-----
|topic| Page object model implementation revamp & other major changes |end|
|released_on| 2026-06-07 |end|
.. warning::
Even if it's a minor release, this version represents a major change for the project; the
package has been mostly rewritten in order to implement the page object model design pattern in
a more efficient way (using type annotation).
Besides, some functionalities have been removed with the aim of limiting the number of features
during the beta phase.
Changed
^^^^^^^
- :py:mod:`~manen.page_object_model` has been completely rewritten around type annotations. Pages
are described by annotating attributes with native Python types (``str``, ``int``, ``float``,
``date``, ``datetime``, ``bool``, ``list``, ...) instead of the former ``Element`` subclasses.
The public API is now split into three submodules:
- ``manen.page_object_model.component``: :py:class:`~manen.page_object_model.component.Page`,
:py:class:`~manen.page_object_model.component.Component` (replacing ``WebArea``) and
:py:class:`~manen.page_object_model.component.Form` (replacing ``Action``).
- ``manen.page_object_model.config``: selectors and modifiers ``CSS``, ``XPath``, ``LinkText``,
``PartialLinkText``, ``Attribute``, ``Wait``, ``Default``, ``DateFormat`` and
``DatetimeFormat``.
- ``manen.page_object_model.types``: type aliases such as ``href``, ``src``, ``inner_html``,
``outer_html``, ``input_value`` and ``checkbox``.
- :py:class:`~manen.browser.BrowserMixin.is_browser_compatible_with_driver` replaces the former
``are_versions_compatible``.
- :py:func:`~manen.finder.find` is now fully typed through overloads.
- Manen no longer has optional dependencies, and ``selenium`` is now its only runtime dependency.
- The minimal supported version of Python is now 3.10.
- Most of the documentation has been rewritten and improved.
Added
^^^^^
- :py:class:`~manen.browser.ScrollDirection` and :py:class:`~manen.browser.HeadlessMode` enums to
configure the browser.
- :py:class:`~manen.exceptions.PollTimeoutException`, raised when an element is not found within
the configured waiting time.
Removed
^^^^^^^
- The module ``manen.resource`` and everything related (including the ``manen`` CLI) have been
removed. The `official Selenium manager `_
now provides the same functionalities.
- ``manen.browser.BraveBrowser`` has been removed; it depended on ``manen.resource`` and was not
tested enough to be exposed publicly.
- The selector-as-string elements (``Element``, ``TextElement``, ``LinkElement``,
``IntegerElement``, ``DateTimeElement``, ...) as well as ``Region``/``Regions`` and the
YAML page loaders have been dropped in favour of the new type-annotation based API.
|
0.2.0
-----
|topic| Rename some classes in :py:mod:`~manen.page_object_model` and improve CLI |end|
|released_on| 2022-02-19 |end|
Added
^^^^^
- Specify link to changelog in documentation in package metadata.
- Introduce new options in ``manen driver download`` to set the specifications of the drivers
to be downloaded directly from the command line.
- Add exhaustibility in documentation of :py:mod:`~manen.page_object_model` to describe
private/special methods and classes other than the ones in ``__all__``.
Changed
^^^^^^^
- Improve CLI command to download drivers executable (now launched with ``manen driver download``).
- Rename :py:class:`~manen.page_object_model.DateTimeElement` (previously ``DatetimeElement``).
- Rename :py:class:`~manen.page_object_model.DOMAccessor` (previously ``DomAccessor``).
Fixed
^^^^^
- Fix link to notebooks in the info section of :ref:`User Guide`
|
0.1.2
-----
|topic| Fix bug in the download workflow of the CLI |end|
|released_on| 2022-02-19 |end|
Fixed
^^^^^
- Fix a ``TypeError`` in the download workflow (variable wrongly named).
|
0.1.1
-----
|topic| Mainly documentation improvements |end|
|released_on| 2022-02-12 |end|
Changed
^^^^^^^
- Make documentation publicly available under
`kodaho.github.io/manen `_.
- Complete README page.
- Add the section `About the project` in the documentation (moved from home page).
- Complete user guides.
- Rewording and reformatting of several sections.
|
0.1.0
-----
|topic| First release of the package |end|
|released_on| 2022-01-31 |end|
Added
^^^^^
- :py:func:`~manen.finder.find` allows to easily get element(s) in a WebDriver
page. This function support several very different use cases, thanks to several
arguments that can be passed to the function.
- :py:mod:`~manen.resource` is a module to easily interact with all the assets
needed by Selenium. It allows for example to download the drivers, executable
required to launch a WebDriver.
- :py:mod:`~manen.browser` defined :py:class:`~manen.browser.ChromeBrowser`
and :py:class:`~manen.browser.BraveBrowser`, an enhanced Selenium WebDriver.
- :py:mod:`~manen.page_object_model` is the implementation of `page object
model `_
described in Selenium documentation. Thanks to that, you can describe and
interact with the DOM structure through Python classes.
- A :py:mod:`~manen.cli` is shipped with the initial release in order to download
drivers files.