# Element ```{toctree} --- hidden: --- key_features best_practices interface ``` ## Overview The Element class serves as a fundamental building block for constructing user interface (UI) components. It acts as a wrapper around _Selenium WebElement_, _Appium WebElement_, and _Playwright Locator_ objects, offering additional utility methods and abstractions to facilitate interaction with web page elements within the Page Object Model (POM) and Page Component Object Model (PCOM) patterns.
### Core Benefits & Rules 1. **Simplified web element interactions:** - `Element` methods provide a cleaner way to interact with web page element. 2. **Enhanced wait mechanisms:** - Built-in methods simplify web page element interaction waiting. For _Selenium_ and _Appium_, using custom waits is generally preferred over implicit waits, especially for negative checks, as implicit waits can be slow in such scenarios. 3. **Delayed initialization**: - The `Element` object has a delayed initialization within the `Group` or `Page` classes, where it is defined. 4. **Attribute-based usage**: - Unlike `Group` or `Page` objects, which can be used as classes, `Element` objects should be defined as attributes. This approach promotes better code organization and reusability.
This section covers features and behaviour of `Element` class detail: - {doc}`Element Initialisation <../other/objects_initialisation>` - {doc}`Element Key Features <./key_features>` - {doc}`Element Best Practices <./best_practices>` - {doc}`Element Interface <./interface>`