Metadata-Version: 2.1
Name: bromine
Version: 0.2.0
Summary: A high-level web testing library based on Selenium and PageObject Pattern
Home-page: https://github.com/Etiqa/bromine
Author: Etiqa s.r.l.
Author-email: 
License: 2-clause BSD License
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Topic :: Software Development :: Testing
Classifier: Topic :: Software Development :: Libraries
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, <4
Description-Content-Type: text/markdown
Requires-Dist: six
Requires-Dist: selenium
Requires-Dist: requests

Bromine is a high-level web testing Python library based on [Selenium][1] and
[PageObject Pattern][2].

It's purpose is to provide a conceptual framework to **model** the system under test.

To write actual tests you'll keep using your testing framework of choice.

Bromine focuses on **end-to-end tests**: it relies on [Selenium][1] to exercise a
*real* system, not to simulate it.

While Selenium serves as the essential foundation enabling end-to-end testing,
WebDriver alone offers too low a level of abstraction.<br/>
When we *describe* some behaviour that our system must exhibit, we usually think
about how users interact with the UI and how this one is expected to respond to
those interactions. We do *not* think about the browser as the main actor, but
indeed as part of the application. In the context of Object-Oriented Programming,
as developers we tend to reason in terms of UI objects interacting with the user
or with other parts of the system.<br/>
Given this perspective shift, Bromine adopts [PageObject Pattern][2] as its cornerstone.

The three basic building blocks of Bromine's conceptual model are `WebApplication`,
`WebPage` and `WebElement`.

`WebElements` are responsible for locating and automatically refreshing themselves relieving the programmer of the burden of explicitly handling Selenium's
[StaleElementExceptions][3].


[1]: https://www.seleniumhq.org/
[2]: https://martinfowler.com/bliki/PageObject.html
[3]: https://docs.seleniumhq.org/exceptions/stale_element_reference.jsp


