Main automation library to wrap selenium and automate webs


Keywords
qacode, chrome-headless, chromedriver, edgedriver, firefoxdriver, functional, headless-chrome, internetexplorer, selenium, selenium-python, testing, tests, webscrapper
License
Other
Install
pip install qacode==0.5.9

Documentation

QA Code

Issues on Github Pull Request opened on Github Release version on Github Release date on Github
Branch Linux Deploy Windows Deploy CircleCI - Docker CodeClimate
master https://travis-ci.org/netzulo/qacode.svg?branch=master https://ci.appveyor.com/api/projects/status/4a0tc5pis1bykt9x/branch/master?svg=true https://circleci.com/gh/netzulo/qacode.svg?&style=shield&circle-token=80384cb2233d112dc0785278d5b7c3d8c6a5686c https://api.codeclimate.com/v1/badges/46279cf9a6a47ed583d6/maintainability

Python tested versions

3.7 3.6 3.5 <=3.4
Supported Supported Supported Not Supported

How to install ?

  • Install from PIP : pip install qacode
  • Install from setup.py file : python setup.py install

Documentation

How to exec tests ?

  • Tests from setup.py file : python setup.py test
  • Install from PIP file : pip install tox
  • Tests from tox : tox -l && tox -e TOX_ENV_NAME ( see tox.ini file to get environment names )
TOX Env name Env description
py35,py36,py37 Python supported versions
flake8 Exec linter in qalab/ tests/
coverage Generate XML and HTML reports
docs Generate doc HTML in /docs

Configuration File

{
  "bot": {
    "log_output_file": "logs/",
    "log_name": "qacode",
    "log_level": "DEBUG",
    "mode": "remote",
    "browser": "chrome",
    "options": { "headless": false },
    "url_hub": "http://localhost:11000/wd/hub",
    "drivers_path": "../qadrivers",
    "drivers_names": [
      "chromedriver_32.exe",
      "chromedriver_64.exe",
      "chromedriver_32",
      "chromedriver_64",
      "firefoxdriver_32.exe",
      "firefoxdriver_64.exe",
      "firefoxdriver_64.exe",
      "firefoxdriver_32",
      "phantomjsdriver_32.exe",
      "phantomjsdriver_64.exe",
      "phantomjsdriver_32",
      "phantomjsdriver_64",
      "iexplorerdriver_32.exe",
      "iexplorerdriver_64.exe",
      "edgedriver_32.exe",
      "edgedriver_64.exe"
    ]
  }
}

Getting Started

Just starting example of usage before read Usage Guide (or refer to `QAcode's Documentation`_).

from qacode.core.bots.bot_base import BotBase
from qacode.core.webs.controls.control_base import ControlBase
from qacode.utils import settings


SETTINGS = settings(
    file_path="/home/user/config/dir/",
    file_name="settings.json"
)


try:
    bot = BotBase(**SETTINGS)
    bot.navigation.get_url("http://the-internet.herokuapp.com/login")
    ctl_config = { "selector": "input[name='username']"}
    ctl = ControlBase(bot, **ctl_config)
    # END
    import pdb; pdb.set_trace() # TODO, remove DEBUG lane
    print(ctl)
except Exception as err:
    print("ERROR: {}".format(err))
finally:
    bot.close()