Metadata-Version: 2.1
Name: autoparaselenium
Version: 0.1.9
Summary: UNKNOWN
Home-page: https://github.com/r2dev2/AutoParaSelenium
Author: Ronak Badhe
Author-email: ronak.badhe@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: pytest (>=6.2.4)
Requires-Dist: pytest-parallel-39 (==0.1.0)
Requires-Dist: requests (>=2.24.0)
Requires-Dist: selenium (>=3.141.0)

# AutoParaSelenium

A library to make parallel selenium tests that automatically download and setup webdrivers

## Usage

### Installation

```
pip install autoparaselenium
```

### Code

The API is very simple

```python
from typing import Union

from selenium import webdriver

from autoparaselenium import configure, chrome, firefox, run_on, all_, Extension

# All parameters are optional, but still call it once before everything
configure(
    extensions=[
        Extension(chrome="path to chrome extension to install"),
        Extension(firefox="path to firefox extension to install"),
        Extension(chrome="chrome path", firefox="firefox path")
    ],
    headless=True, # if there are chrome extensions, chrome will not be headless as a selenium limitation
    selenium_dir="./drivers"
)

@run_on(all_)
def test_both_firefox_and_chrome(web: Union[webdriver.Firefox, webdriver.Chrome]):
    ...

@run_on(firefox)
def test_firefox_only(web: webdriver.Firefox):
    ...

@run_on(chrome)
def test_chrome_only(web: webdriver.Chrome):
    ...
```

### Running 

Use `pytest --tests-per-worker PROC` where `PROC` is the number of parallel threads

## Credits

* [pytest-parallel python3.9 support fork](https://github.com/andni233/pytest-parallel/tree/python39-support)


