Automate using WebdriverIO - Its time to React !
Rating: 8 out of 10
IncentivizedUse Cases and Deployment Scope
We are using webdriverIO with typescript. We are using Reactjs for Front-end development. Our use-case is to automate multiple live sessions for different users like Teachers, Student, etc. So we have WebdriverIO for browser testing. I would like to test with WebdriverIO as we can select the way we like to interact with the browser whether it's web driver or DevTools. This is a framework that has a command-line interface (CLI) and a very flexible configuration.
Advantages I feel over other tools:
1.Easy project setup.
2.Flexible configuration.
3.Integration with other test automation tools out of box.
Advantages I feel over other tools:
1.Easy project setup.
2.Flexible configuration.
3.Integration with other test automation tools out of box.
Pros
- It allows to automate any application written with modern web frameworks such as React
- It can be used to automate native mobile applications for Android and iOS.
- The WebdriverIO testrunner comes with a command line interface that provides a nice configuration utility that helps to create config file in a minute.
- It can run the commands both in sync and async modes.
- It provides a set of commands that abstract away common interactions with an application like navigating, clicking, reading the state of an element.
Cons
- Tasks written in this can only be debugged using the provided WDIO task runner
- We cannot set breakpoints within tasks but have WDIO pause the run between commands.
- It is not as customized as Protractor.
- It deviates from generic syntax which may confuse selenium developers having knowledge of other languages.
Likelihood to Recommend
Best suited where frontend developments are in React and where BDD and TDD test frameworks are to be used. Its syntax is very easy to write and understand. Even the non-programmer can do the initial setup.
Not suited when the language you are using is other than Javascript(or Typescript).
Not suited when the language you are using is other than Javascript(or Typescript).