Skip to main content

SeleniumTestability library that helps speed up tests withasyncronous evens

Project description

robotframework-seleniumtestability

SeleniumTestability is a plugin to Robot Framework's SeleniumLibrary that adds functionality to it doesn't fit into its mission. These new features are archived by SL's plugin api that then automatically instrumentents the web application via javascript calls and provides keywords to bridge those into Robot Framework.

Plugin provides automatic detection of asyncronous events happening within the web application. For example, if a rest api is called from the application, testcase can automatically wait for that call to finish before doing any interaction in the UI. There's also a bunch of functionality like fetching of browser logs, keywords to interact with local and session storage. See the keyword documentation here for more details.

SeleniumTestability relies on core Selenium's feature EventFiringWebdriver and provides it's own listener interface that takes care of waiting in right places and instrumenting the SUT whenever it is needed.

In the future, its also possible to extend the javascript parts of SeleniumTestability to incorporate more state inspections.

Monitoring of the asyncronous events is archived with help of Testability.js and its bindings

Support

"Official" support channel available in Gitter.im

Installation

pip install robotframework-seleniumtestability

Usage

Initialize library

Library         SeleniumLibrary     plugins=SeleniumTestability;True;30 Seconds;True

For parameter descriptions, refer to keyword docmentation.

Example

  Click Element             id:button_that_triggers_ajax_request
  Click Element             id:some_other_element
  Log To Console            This will happen right after clicking

In here, if automatic_wait has been enabled, second Click Element keyword wont be executed before action triggered by the first button is finished.

If automatic_wait is not enabled, test case can request the wait itself and previous example would look something like this.

  Click Element               id:button_that_triggers_ajax_request
  Wait For Testability Ready
  Click Element               id:some_other_element
  Wait For Testability Ready
  Log To Console              This would show after events triggered by second click are done.

Currently Supported Asyncronous features

  • setTimeout & setImmediate calls and wait for them.
  • fetch() call and wait for it to finish
  • XHR requests and wait for them to finish
  • CSS Animations and wait form them to finish
  • CSS Transitions and wait form them to finish
  • Viewport scrolling.

Do note that catching css animations and transitions is browser dependant. In the past certain browsers did not implement these features as "the standard" would require.

Other functionality.

SeleniumTestability also provides other conveniance keywords that do not make sense to incorporate into SeleniumLibrary itself, mainly due to functionality not being in scope of SeleniumLibrary and Selenium python bindings. Do check the keyword documentation for up to date list of keywords.

Keyword Documentation

Keyword documentation here and if you need to create one for offline usage:

python -m robot.libdoc SeleniumLibrary::plugins=SeleniumTestability

Contributing

CONTRIBUTING.md documents how to setup the environment for further development of SeleniumTestability.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robotframework-seleniumtestability-2.1.0.tar.gz (228.1 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file robotframework-seleniumtestability-2.1.0.tar.gz.

File metadata

File hashes

Hashes for robotframework-seleniumtestability-2.1.0.tar.gz
Algorithm Hash digest
SHA256 2398489992a8b6cbfb5b6da38b76178c03826eff26a0e1d20f473f284efcc8ae
MD5 e56440fccad259a7d812e83cc99e4e3b
BLAKE2b-256 ce631e1c64311859c4ea6817acf8bf1f6635d01517d2e79e4496457e961bc921

See more details on using hashes here.

File details

Details for the file robotframework_seleniumtestability-2.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for robotframework_seleniumtestability-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b312783f2e26c39c5002ea6db561088a1c8cc551af1dd27b37cb7c04566bbc5c
MD5 75055cfc59e9a05edb735c09afe4be65
BLAKE2b-256 13fd2c5006a4e19746ecaa95e5ef1c7c7a83971f06c366379bad47c311823dce

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page