All Projects → rasjani → robotframework-seleniumtestability

rasjani / robotframework-seleniumtestability

Licence: Apache-2.0 license
Extension for SeleniumLibrary that provides manual and automatic waiting for asyncronous events like fetch, xhr, etc.

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
RobotFramework
109 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to robotframework-seleniumtestability

page-modeller
⚙️ Browser DevTools extension for modelling web pages for automation.
Stars: ✭ 66 (+94.12%)
Mutual labels:  selenium, robot-framework, robotframework
robot-framework-docker
Docker image to run robot framework acceptance testing in a docker container
Stars: ✭ 24 (-29.41%)
Mutual labels:  robot-framework, robotframework
robotframework-imagehorizonlibrary
Cross-platform Robot Framework library for GUI automation based on image recognition
Stars: ✭ 67 (+97.06%)
Mutual labels:  robot-framework, robotframework
Instagram-Giveaways-Winner
Instagram Bot which when given a post url will spam mentions to increase the chances of winning. Win Instagram Giveaways!
Stars: ✭ 95 (+179.41%)
Mutual labels:  selenium, hacktoberfest2020
robotframework-zoomba
Extended Robot Framework libraries to make testing GUI, REST/SOAP API, Mobile, and Windows Desktop easier.
Stars: ✭ 121 (+255.88%)
Mutual labels:  robot-framework, robotframework
robotframework-httprequestlibrary
Robot Framework's library to test REST interfaces utilizing Apache HttpClient
Stars: ✭ 20 (-41.18%)
Mutual labels:  robot-framework, robotframework
RobotEyes
Image comparison for Robot Framework
Stars: ✭ 62 (+82.35%)
Mutual labels:  selenium, robot-framework
robotframework-preso
Introduction to Robot Framework - TriTAUG Presentation
Stars: ✭ 16 (-52.94%)
Mutual labels:  selenium, robot-framework
WebDemo
Robot Framework web testing demo using SeleniumLibrary
Stars: ✭ 161 (+373.53%)
Mutual labels:  selenium, robotframework
whatabomb
A whatsapp bombing GUI Script
Stars: ✭ 84 (+147.06%)
Mutual labels:  selenium, hacktoberfest2020
Autolink
AutoLink是一个开源Web IDE自动化测试集成解决方案
Stars: ✭ 129 (+279.41%)
Mutual labels:  selenium, robotframework
Seleniumlibrary
Web testing library for Robot Framework
Stars: ✭ 1,011 (+2873.53%)
Mutual labels:  selenium, robotframework
robot-email-template
Email template for Robot Framework test results
Stars: ✭ 19 (-44.12%)
Mutual labels:  robot-framework, robotframework
kubetools
Kubetools - Curated List of Kubernetes Tools
Stars: ✭ 674 (+1882.35%)
Mutual labels:  hacktoberfest2020
My-Digital-CV
My Digital CV is Interactive Virtual Resume Template which provides basic functionality to develop your own Digital Resume/CV
Stars: ✭ 18 (-47.06%)
Mutual labels:  hacktoberfest2020
LinkedIn Scraper
🙋 A Selenium based automated program that scrapes profiles data,stores in CSV,follows them and saves their profile in PDF.
Stars: ✭ 25 (-26.47%)
Mutual labels:  selenium
carina
Carina automation framework: Web, Mobile, API, DB etc testing...
Stars: ✭ 652 (+1817.65%)
Mutual labels:  selenium
Sneakers Project
Using Selenium, Neha scraped data about 35 top selling sneakers of Nike and Adidas from stockx.com. She used this data to draw insights about sneaker resales.
Stars: ✭ 32 (-5.88%)
Mutual labels:  selenium
selenium-grid-docker-swarm
web scraping in parallel with Selenium Grid and Docker
Stars: ✭ 32 (-5.88%)
Mutual labels:  selenium
awesome-ufma
Uma lista de provas das disciplinas ministradas na Universidade Federal do Maranhão.
Stars: ✭ 63 (+85.29%)
Mutual labels:  hacktoberfest2020

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].