Version history¶
We follow Semantic Versions.
Unreleased¶
0.11.0 (03.09.26)¶
- Upgrade project/package manager from poetry to UV.
- Update project maintainers.
- Update docs system from Sphinx to MkDocs.
- Manually sync with Saritasa Python Boilerplate.
- Rename typevar
TLocatortoTLocator_coto reflect it's covariance. - Fix failed checks after boilerplate syncing.
0.10.3 (08.04.26)¶
- Extend
DataTestIdLocatorarguments withexactparameter to specify whether to use exact match or contains match fordata-testidattribute. - Remove
test_searchafter issues with captcha bypassing. - Extend
PomcornElement.click()arguments withcenter_elementparameter to specify whether to scroll to element before click.
By default, webdriver scrolls to element before clicking if the element container
not in screen space or behind of header/footer elements, but in some cases element
can be inside screen space but overlapped by another element (e.g. by custom header/footer
that made using div tags) and at that case we might need to use pomcorn custom scroll
method which scrolling to element until it will be in center of screen.
0.10.2 (24.11.25)¶
- Update Component's
init_elementandinit_elementsmethods
They now use self.page.{method name} instead of super().{method name}.
This should help in cases where it is necessary to override PomcornElement.
Now it is possible via overriding Page.init_element / Page.init_elements methods.
0.10.1 (31.10.25)¶
- Add auto publishing releases to PyPI via GitHub Actions
0.10.0 (21.10.25)¶
- Add timeout argument for all wait methods to add ability to change default wait timeout for specific cases
- Extend
get_item_by_textmethod withexactparameter (03.07.25)
0.9.3 (22.05.25)¶
- Extend
/and//operations to support combiningXPathLocatorwith rawstrqueries - Fix typo in README
0.9.2 (07.05.25)¶
- Fix mistake with
CONTROLandCOMMANDinPomcornElement.clear
0.9.1 (05.05.25)¶
- Fix
PomcornElement.clearmethod: remove redundant string and add passingonly_visibleargument tosend_keys
0.9.0 (17.04.25)¶
- Add xpath expressions and locator object support for square brackets of
XPathLocator
0.8.7 (20.03.25)¶
- Add
InputInLabelLocatorto locators.__init__
0.8.6 (13.03.25)¶
- Replace isort, black, flake with Ruff
- Replace error message handling via try-except block in wait methods with built-in
selenium's message attribute of the
wait.untilmethod.
Backwards incompatible changes in 0.8.6¶
- Remove custom errors. Custom errors were used only in
wait.untilthat wrapped try-except block. Since the error message can be set directly inwait.until, these errors have been removed.
0.8.5 (10.02.25)¶
- Add ability to get related xpath locators by index for
XPathLocator
0.8.4 (30.01.25)¶
- Add escaping single and double quotes in the:
ElementWithTextLocator,InputInLabelLocator,InputByLabelLocator,TextAreaByLabelLocator. - Add escaping single and double quotes in the
get_item_by_textmethod of theListComponent
0.8.3 (20.12.24)¶
- Rename
__parameters__inListComponentto__generic__parametersto avoid problems with Python build-in functions
0.8.2 (19.12.24)¶
- Add ability to specify
TypeAliasas_item classand useListComponentas a parameterized type
0.8.1 (25.11.24)¶
- Improve getting
item classfrom firstListComponentgeneric variable. There were several cases where this didn't work correctly (for multiple generic variables and inheritance). Examples of such cases are presented in this PR.
Warning: The item_class class attribute was removed.
0.8.0 (05.07.24)¶
- Add ability to not specify
item_classinListComponent. Instead, it will be automatically filled with value passed inGeneric[ListItemType].
Warning: The item_class specification is still available, but it is
deprecated and will be removed soon.
0.7.5¶
- Remove redundant call of
scroll_toinPomcornElement.click(). This is redundant, as webdriver by default scrolls to element before click (docs).
0.7.4¶
- Improve
Page.click_on_page()method to click the page coordinates instead of offset relative to current mouse position
0.7.3¶
- Add ability to not specify
app_rootinPage.open_from_url()as inPage.open()
0.7.2¶
- Improve
Page.click_on_page()method to click on tag - Improve
Page.open_from_url()to support kwargs - Fix
\related problems inPage._get_full_relative_url()
0.7.1¶
- Add ability to
Elementto specify simple and relative locators using thelocatororrelative_locatorarguments, as in Component.init_element. - Fix some possible xpath errors depending on empty locators queries and brackets.
0.7.0¶
- Update diagrams with mermaid
- Add invocation inv docs.serve to run docs on localhost
- Add auto-scroll to element before click
- Add page class name to
PageDidNotLoadedError - Add method
contains()toXPathLocatorfor search by contained text
Backwards incompatible changes in 0.7.0¶
- Remove simple
Componentclass -
Rename
ComponentWithBaseLocatortoComponent -
Rename
Elementclass toPomcornElement - Add descriptor
Elementto simplify adding element-attributes to Pages and Components
0.6.0¶
Backwards incompatible changes in 0.6.0¶
- Updating the
Page.click_on_pagemethod: now it clicks on (1, 1) page coordinates, because clicking on the html tag was done in the center of the page, which led to unexpected situations InputByLabelLocatoris split intoInputByLabelLocator(for non-nested case) andInputInLabelLocator(for nested case)
0.5.0¶
- Add ability to specify
base_locatorforComponentWithBaseLocatoras a class attribute, so as not to override__init__(Issue: #34) - Add ability to specify
base_item_locatorviaitem_locatorandrelative_item_locatorattributes forListComponentto avoid overridingpropertyeach time and simplify creation of nested items locators
0.4.0¶
- Add
|(or) operator for XPathLocators - Add
Page.click_on_pagemethod - Add recommendation for use keyword when specifying the
locatorargument ininit_elementandinit_elementsmethods whenever possible to be consistent with the method of the same name inComponentWithBaseLocator - Improve
WebView.scroll_to()
0.3.1¶
- Fix type hints after update Selenium
0.3.0¶
Backwards incompatible changes in 0.3.0¶
- Update
InputByLabelLocatorfrom a single-level to a nested implementation
0.2.0¶
Backwards incompatible changes in 0.2.0¶
- Replace
is_loadedproperty tocheck_page_is_loadedmethod
0.1.0¶
- Init release