BackstopJS icon indicating copy to clipboard operation
BackstopJS copied to clipboard

[WIP] Integrate WDIO

Open conradkirschner opened this issue 4 years ago • 6 comments

Reason behind that pullrequest is, to integrate wdio. This will allow BackstopJS to use selenium/webdriver standards.

  • [x] define how config should look like
  • [x] check if cloud provider will work
  • [x] do just the minimal changes for now -> make it run with wdio and exclude features that are not possible (throw warning)
  • [x] convert engine scripts from puppeteer to wdio
  • [ ] checking real app screenshots

Currently the branch is Work in Progress, but feel free to have a first look.

  • [x] do screenshot with wdio and compare them
  • [ ] clearif if backstopjs maintainer will merge this idea or not, define requirements for merge

@garris I tried to do as less changed as possible, so you can faster review it. One thing I saw is that comparing puppeteer and wdio might not so easy and require more changes, but I would still merge it and say "Use puppeteer with Firefox/Chrome or ANY browser/device with wdio)

conradkirschner avatar Jul 25 '21 09:07 conradkirschner

waiting for feedback.

current blocker is settting window size ....

conradkirschner avatar Jul 25 '21 15:07 conradkirschner

Wow. This looks like a lot of work. I think I'll add a /wdio branch. Will try get to this soon. Thank you.

garris avatar Jul 25 '21 15:07 garris

not that much work (1 evening + 1 day) I just tried to replace puppeteer everwhere with wdio. so incremental exchange commands

puppeteer: page.evaluate()

wdio: browser.execute();

copied the engine scripts and converted them aswell ...

(I need to spend a bit more time on it, before I would remove the WIP - like the window size height thing is most confusing me)

But sure I will try to finish that pull request soon, but I like to make my work transparent (therefore WIP)

conradkirschner avatar Jul 26 '21 06:07 conradkirschner

Some features are missing in wdio standalone, that should not be part of that project. https://github.com/webdriverio/webdriverio/issues/7185

conradkirschner avatar Jul 27 '21 12:07 conradkirschner

As suggested in webdriverio/webdriverio#7185 this should not be part of wdio core, so I added service handling directly in backstopjs, need to verify if that solution works (just tried out with selenium-standalone-service)

conradkirschner avatar Aug 01 '21 10:08 conradkirschner

@garris Regarding the different environments, I just added it into the readme to warn people that cross engine will not work. https://github.com/garris/BackstopJS/pull/1342#discussion_r689730423

But as it is already written in the readme, might be better as a own section... (removed it for now)

conradkirschner avatar Aug 16 '21 19:08 conradkirschner