-
Notifications
You must be signed in to change notification settings - Fork 607
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Integrate WDIO #1342
base: master
Are you sure you want to change the base?
[WIP] Integrate WDIO #1342
Conversation
moved engine scripts
removed impossible feature for now
removed impossible feature for now
waiting for feedback. current blocker is settting window size .... |
Wow. This looks like a lot of work. I think I'll add a |
not that much work (1 evening + 1 day) I just tried to replace puppeteer everwhere with wdio. so incremental exchange commands puppeteer: wdio: 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) |
- added configurable wdio config (services will not work, they will need some kind of integration) - height is still wrong in wdio
Some features are missing in wdio standalone, that should not be part of that project. |
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) |
process env variables - moved wdio service shutdown to bettr position - added sample configuration - added todo for checking startup services -
- cleaned up a bit - [fixed] service handling of wdio-remote
As there are some possibilities I am not sure which one I would use, added warning for now that feature is not supported with webdriverio - added test config for browserstack
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some comments -- thanks for working on this!
README.md
Outdated
@@ -29,6 +29,9 @@ | |||
- Plays nice with CI and source control | |||
- Run globally or locally as a standalone package app or `require('backstopjs')` right into your node app | |||
- Incredibly easy to use: just 3 commands go a long long way! | |||
- [BETA] Limited Support for WebDriver Protocol, based on wdio | |||
- works as well with any wdio-(cloud)-service (see [wdio configuration]() ) | |||
- not compatible with puppeteer references pictures |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does this mean?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had some issues with directly comparing, backstopjs puppeteer pictures with wdio pictures.
- screensize is different a bit (still need to investigate if that what goes on, but due sickness&work I couldn't find the time)
- puppeteer does a full page picture, webdriver captures only viewport => In theory, should be possible to merge the viewport images to a full page picture, wdio plugin is outdated
- image interception is not possible without a proxy solution, due selenium limitation
Therefore I added a BETA support, so maybe some people get interessted to work on it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, it is very very unlikely that you could ever render a reference image in puppeteer and then be able to test that against a test image generated in WDIO. Or vice versa. In addition to different high level rendering interpretations of the different application environments, there will also be a low-level rendering issue because different hardware will dither bitmap text differently. For example you can see this explanation.
TLDR; Screenshots generated by a single hardware, software and platform combination can only be compared against itself.
@garris Regarding the different environments, I just added it into the readme to warn people that cross engine will not work. But as it is already written in the readme, might be better as a own section... |
Reason behind that pullrequest is, to integrate wdio. This will allow BackstopJS to use selenium/webdriver standards.
Currently the branch is Work in Progress, but feel free to have a first look.
@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)