Metadata-Version: 2.1
Name: selenium_assist
Version: 0.3.1
Summary: Helper functions for selenium
Project-URL: Homepage, https://github.com/ivanmicetic/selenium-assist
Project-URL: Bug Tracker, https://github.com/ivanmicetic/selenium-assist/issues
Author-email: Ivan Mičetić <ivan.micetic@gmail.com>
License-File: LICENSE
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.7
Requires-Dist: selenium>3
Requires-Dist: webdriver-manager
Description-Content-Type: text/markdown

# selenium-assist

[![PyPI](https://img.shields.io/pypi/v/selenium-assist)](https://pypi.org/project/selenium-assist/)
[![PyPI - License](https://img.shields.io/pypi/l/selenium-assist)](https://github.com/ivanmicetic/selenium-assist/blob/main/LICENSE)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

Python package for easy writing of selenium scripts.

Implemented helper functions:
- connect_webdriver
- load_page
- wait_for_presence
- wait_for_visibility
- click_element
- send_keys
- hoover_over_element
- switch_to_iframe
- get_table_data
- get_element_text

## install
```bash
pip install selenium-assist
```

## usage
```python
import time
import selenium_assist as sa
from selenium.webdriver.common.keys import Keys
import logging


# setup and silence loggers
logging.basicConfig(level=logging.DEBUG)
logging.getLogger("selenium.webdriver.remote.remote_connection").setLevel(logging.WARNING)
logging.getLogger("urllib3").setLevel(logging.WARNING)

# connect webdriver (use False for headless mode)
driver = sa.connect_webdriver(True)

# do stuff
sa.load_page("Loading initial webpage ...", "https://google.com/ncr", driver)
sa.wait_for_presence("Waiting for Accept all ...", '//*[@id="L2AGLb"]', driver, extra_timeout=1)
sa.click_element("Clicking Accept all ...", '//*[@id="L2AGLb"]', driver)
sa.wait_for_presence("Waiting for Google Search ...", '//*[@id="APjFqb"]', driver)
sa.click_element("Clicking search box ...", '//*[@id="APjFqb"]', driver)
sa.send_keys("Sending text ...", '//*[@id="APjFqb"]', "news" + Keys.ENTER, driver, skip_check=True)

# close webdriver
logging.debug("Done with webdriver, sleeping 3s and exiting ...")
time.sleep(3)
driver.close()
```
