BackstopJS
BackstopJS copied to clipboard
[WIP] Integrate WDIO
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)
waiting for feedback.
current blocker is settting window size ....
Wow. This looks like a lot of work. I think I'll add a /wdio branch. Will try get to this soon. Thank you.
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)
Some features are missing in wdio standalone, that should not be part of that project. https://github.com/webdriverio/webdriverio/issues/7185
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)
@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)