https://github.com/theboredgenius/web-automation
Framework built on top of Selenium framework for easy setup and config
https://github.com/theboredgenius/web-automation
automation selenium webdriver
Last synced: 3 months ago
JSON representation
Framework built on top of Selenium framework for easy setup and config
- Host: GitHub
- URL: https://github.com/theboredgenius/web-automation
- Owner: theboredgenius
- License: mit
- Created: 2022-12-08T19:41:15.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-12-22T07:02:14.000Z (over 3 years ago)
- Last Synced: 2025-12-17T01:28:24.959Z (6 months ago)
- Topics: automation, selenium, webdriver
- Language: Python
- Homepage: https://pypi.org/project/web-automation/
- Size: 5.86 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Web Automation Framework
This is a project designed to minimize the setup and config of selenium and actions performed on elements
To use this library, create a snippet like below and populate the actions in the `run` method (remove the `pass` keyword)
```python
from web_automation.framework import Framework, Browser, By
class CustomClass(Framework):
def run(self):
pass
CustomClass(
browser=Browser.CHROME,
wait=10,
headless=False,
download_path=''
)
```
The Constructor accepts 4 params (only one mandatory: browser) which is applied across the automation session
- `browser: Browser` - The type of browser that you want to use, based on the [`Browser`](#browser-class) class
- `wait: int` - The wait time for an element before throwing `NoSuchElementException` exception, default value is `30` seconds
- `headless: bool` - Boolean option to set the automation to use the browser in headless mode (runs in background and no visible browser window), default value is `False`
- `download-path: str` - the path to store the downloaded files, default value is the system download folder
---
### Browser Class
The `Browser` enum from the module will provide the target browser required to run the automation.
The supported browsers are
- Google Chrome
- Microsoft Edge
- Mozilla Firefox
- Safari
---
### Element selection
The HTML elements in the browser can be selected using one of the below attributes
- id
- name
- tag name
- class name
- css selector
- xpath
- link text
- partial link text
These selectors are provided using the `By` class (Selenium Class)
---
### SelectBy Class
There are different ways to select an option in the dropdown menu. The `SelectBy` enum has the below listed options to select the item in the dropdown
- Index
- Text
- Value
---
### Actions Available
The below methods are available in the Framework Class and should be used inside the run method prefixing `self.`
- `type(elem_type, elem_id, value, clear)` - used to type the `value` in the element
- `elem_type: By` - one of the options from `By`
- `elem_id: str` - element ID value based on the `elem_type`
- `value: str` - value to be typed in the component
- `clear: bool` - Boolean value to clear the element before typing
- `click(elem_type, elem_id)` - used to click the element
- `elem_type: By` - one fo the options from `By`
- `elem_id: str` - element ID value based on the `elem_type`
- `select(elem_type, elem_id, select_by, value)` - used to select an options from the dropdown input
- `elem_type: By` - one of the options from `By`
- `elem_id: str` - element ID value based on the `elem_type`
- `select_by: SelectBy` - one of the options from `SelectBy`
- `value: str` - value for the `SelectBy` option type
- `deselect(elem_type, elem_id)` - used to deselect a dropdown list
- `elem_type: By` - one of the options from `By`
- `elem_id: str` - element ID value based on the `elem_type`
- `check_if_exists(elem_type, elem_id)` - used to check if the mentioned element exists in the page
- `elem_type: By` - one of the options from `By`
- `elem_id: str` - element ID value based on the `elem_type`
- `navigate_to(url)` - used to navigate to the mentioned url
- `url: str` - Target url to be navigated to
- `wait(wait_time)` - wait for mentioned time
- `wait_time: int` - wait for the mentioned number of seconds