wd.py icon indicating copy to clipboard operation
wd.py copied to clipboard

Python Client binding for Macaca

Macaca Python Client

.. image:: https://img.shields.io/coveralls/macacajs/wd.py/master.svg?style=flat-square :target: https://coveralls.io/github/macacajs/wd.py

.. image:: https://img.shields.io/travis/macacajs/wd.py/master.svg?style=flat-square :target: https://travis-ci.org/macacajs/wd.py

.. image:: https://img.shields.io/pypi/v/wd.svg?style=flat-square :target: https://pypi.python.org/pypi/wd

.. image:: https://img.shields.io/pypi/pyversions/wd.svg?style=flat-square :target: https://pypi.python.org/pypi/wd/

.. image:: https://img.shields.io/pypi/dd/wd.svg?style=flat-square :target: https://pypi.python.org/pypi/wd/

Intro

WD.py is a Python WebDriver client implemented most of the APIs in the WebDriver Protocol <https://www.w3.org/TR/webdriver/>. It was originally designed for Macaca <//macacajs.github.io> (A Node.js powered WebDriver server), but also available for any other implementation of WebDriver server such as Selenium, Appium and etc.

Homepage

WD.py’s documentation. <//macacajs.github.io/wd.py/>_

Sample

WD.py’s sample. <//github.com/macaca-sample/macaca-test-sample-python/>_

Examples

.. code-block:: python

>>> from macaca import WebDriver, WebElement

# Configure the desired capabilities.
>>> desired_caps = {
    'autoAcceptAlerts': True,
    'browserName': 'electron',
    'platformName': 'desktop'
}

>>> driver = WebDriver(desired_caps)

# Start the WebDriver session
>>> driver.init()

# Support fluent API
>>> driver.set_window_size(1280, 800).get("https://www.google.com")

# Get WebElement instance through element_by_* APIs.
>>> web_element = driver.element_by_id("lst-ib")
>>> print(type(web_element))
macaca.webelement.WebElement

# WebElement include methods such as send_keys, click, get_attribute and etc.
>>> web_element.send_keys("macaca")
>>> web_element = driver.element_by_name("btnK")
>>> web_element.click()

# WebDriver also has some properties like source, title and current_url.
>>> html = driver.source
>>> print('Does Macaca exist: ', 'macaca' in html)
Does Macaca exist: True
>>> title = driver.title
>>> print(title)
macaca - Google Search

Changelog

Details changes for each release are documented in the HISTORY.rst <HISTORY.rst>_.

Contributing

See CONTRIBUTING.rst <./CONTRIBUTING.rst>_

License

MIT <http://opensource.org/licenses/MIT>_