rf-se-dtl-selectors-plugin

DOM testing library inspired selectors for Robot Framework SeleniumLibrary.


License
MIT
Install
pip install rf-se-dtl-selectors-plugin==0.4.1

Documentation

rf-se-dtl-selectors-plugin

Build Status

DOM testing library inspired selectors for Robot Framework SeleniumLibrary.

Installation

To install this plugin from PyPI, run:

pip install rf-se-dtl-selectors-plugin

Usage

In order to use selector provided by this plugin, load SeleniumLibrary with TestingLibrarySelectorsPlugin in the plugin array:

*** Settings ***
Library         SeleniumLibrary    plugins=TestingLibrarySelectorsPlugin

*** Test cases ***
Click input element
    Click element  placeholder:Search

The plugin provides alttext, label, placeholder, testid, text, and title selectors. See acceptance_tests directory for usage examples. These locators are automatically registered when the plugin is initialized.

All attribute and text values are passed to normalize-space() XPath function before comparison with the given value.

In addition to the locator strategies, this plugin provides Get Xpath keyword to get the XPath expression for given locator. For example:

*** Settings ***
Library         SeleniumLibrary    plugins=TestingLibrarySelectorsPlugin

*** Test Cases ***
Find elements with xpath
    ${xpath}=  Get Xpath  placeholder:Search
    Click element  xpath:${xpath}

Testing

Check and automatically fix formatting with:

pycodestyle TestingLibrarySelectorsPlugin
autopep8 -aaar --in-place TestingLibrarySelectorsPlugin

Run static analysis with:

pylint -E --enable=invalid-name,unused-import,useless-object-inheritance TestingLibrarySelectorsPlugin

Run unit tests:

# Run unit tests
python3 -m unittest discover -s unit_tests/

# Run unit tests with coverage analysis
coverage run \
    --branch \
    --source TestingLibrarySelectorsPlugin/ \
    -m unittest discover -s unit_tests/
coverage report -m

Run acceptance tests in Docker container:

# Build image
docker build . -t atest

# Run acceptance tests
docker run --rm atest

# Run acceptance tests and get test output to ./out
docker run -v $(pwd)/out:/out --rm atest -d /out -L TRACE:INFO