SeleniunTestability library that helps speed up tests withasyncronous evens
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.
pip install robotframework-seleniumtestability
Library SeleniumLibrary plugins=SeleniumTestability;True;30 Seconds;True
For parameter descriptions, refer to keyword docmentation.
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.
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 here and if you need to create one for offline usage:
python -m robot.libdoc SeleniumLibrary::plugins=SeleniumTestability
CONTRIBUTING.md documents how to setup the environment for further development of SeleniumTestability.
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size robotframework-seleniumtestability-0.9.2.tar.gz (192.7 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for robotframework-seleniumtestability-0.9.2.tar.gz