/tigre

Tigre is a helper to always call the correct webdriver

Primary LanguagePythonMIT LicenseMIT

Tigre 🐯

Tigre is a helper to instantiate your selenium webdriver at the right time.

Motivation

Python selenium provides some alternatives for you call your browser, but if you want to use a remote browser, you will have to configure a lot of capabilities. Tigre's main idea is to make it easier to use remote browsers, such as the use in grids grids, in load balancers, in mobile automation or even using docker images.

Tested on

  • docker-selenium

    • grid (see file)
      • chrome
      • firefox
    • standalone
      • chrome (standalone-chrome:3.141.59-xenon)
      • firefox (selenium/standalone-firefox:3.141.59-xenon)
  • selenoid

    • grid (by cm)
      • chrome
      • firefox
      • opera

Not tested yet

TODO

  • Grid tools

    • standalone
    • docker-selenium
    • selenoid
    • zalenium
    • Authentication 🔥
  • Webdriver features

    • Remote webdrivers
    • Local webdrivers
    • Android webdrivers
    • iOS webdrivers
    • Test using paid tools (EX: SauceLabs)
  • Continuous integration stuff

    • Python 3.7
    • Python 3.8
    • Docker integration
  • Documentation

    • Start mkdocs
  • more a lot of things

Simple example

example using remote webdriver.

>>> from tigre.remote import firefox

# complex definition enabling vnc and video recorder on firefox 70.0
>>> ff = firefox.version(70.0).vnc(True).resolution('800x600').video(True).build()
<selenium.webdriver.remote.webdriver.WebDriver (session="38f70e50-6009-4623-8969-34a9331ebf0a")>

>>> ff.capabilities
{'browserName': 'firefox', 'version': '70.0', 'enableVNC': True, 'screenResolution': '800x600', 'enableVideo': True}

Dynamic importing example

>>> from tigre.remote import firefox70

# complex definition enabling vnc and video recorder on firefox 70.0
>>> ff = firefox70.vnc(True).resolution('800x600').video(True)
ff.capabilities
{'browserName': 'firefox', 'version': '70', 'enableVNC': True, 'screenResolution': '800x600', 'enableVideo': True}