Switch from using Selenium Webdriver to WebdriverIO and chai as assertion
Background / User story
Currently we are using selenium for Adblock Plus UI end-to-end automation, as was introduced in #784 (closed), but there are couple of advantages of using WebDriverIO over Selenium(also see Dorel's research comment):
- WebDriverIO syntax is easier and Dorel can start creating tests and POW(Abstraction classes) right away.
- The test seem to start faster on Chrome.
What are cons of using WebDriverIO:
The only con I can find so far is that our test machinery used in adblockpluschrome
package has multi-browser and version support logic integrated for Selenium web driver, but I can't see any reason why can't we adapt that logic and reuse relevant parts from it, for example downloading browser binaries.
NodeJS assertion library doesn't provide expect
syntax which is also something that Dorel would like to use and asked for providing ability to use Chai's expect
assertion as it make the tests more readable for testers.
What to change
- Design: (N/A)
- Research: see Dorel's research comment and refer to Background section.
- Spec: (N/A)
- Legal: (N/A)
- Development: Replace Selenium with WebdriverIO and add chai as an assertion library.
Hints for testers
Use WebDriverIO syntax for tests implementation, rather than driver specific syntax, i.e Puppeteer syntax might not be executed when running tests using Gecko driver.
Hints for translators
(N/A)