Skip to content

Conversation

@fincha
Copy link

@fincha fincha commented Mar 7, 2017

improved webdriver io support, still have some open tasks, to fully support the api.

Copy link
Owner

@garris garris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a great start! I only had time to skim -- but I am very excited about this feature idea.

I think it would help to bear in mind that the current code line is still evolving -- so to make this integration smooth you'll need to rebase from @beta a lot.

From a product standpoint I would want to look at keeping as much feature parity as possible between versions.

- **`scenarios[n].url`** – Required. Tells BackstopJS what endpoint/document you want to test. This can be an absolute URL or local to your current working directory.
- **`scenarios[n].selectors`** – An array of CSS selector strings enabling you specify what part of your DOM you want to test. The default value is `document`, which will attempt to capture your entire layout.

- **`engine`** - by default is "phantomjs" to use webdriver set it to "chrome"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't the option be 'webdriver' or 'webdriver:browserArg' here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure, makes sence.


scenario.selectors.forEach(function (selector, i) {
let cleanedSelectorName = selector.replace(/[^a-z0-9_\-]/gi, ''); // remove anything that's not a letter or a number

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Functions like these should probably be broken out into separate util files with tests to make this refactor cleaner.

@fincha
Copy link
Author

fincha commented Mar 9, 2017

@garris Is there a pull request from @beta or how you mean this? Right now I am a bit off the master, you did some changes I have to rebase.

@uglow
Copy link

uglow commented May 3, 2017

@fincha @garris Will this PR lead to consistency in font-rendering across OSes when using Chrome via WebDriver?

@fincha
Copy link
Author

fincha commented May 3, 2017

@uglow I have tested this on ubuntu and OSX, this worked fine. No idea about windows.

@chrishelgert
Copy link

@fincha tried it on windows, but the selenium/webdriver didn´t start - i only saw

> visual-regression@1.0.0 test D:\workspace\visual-regression
> backstop test

BackstopJS loading config:  D:\workspace\visual-regression\backstop.json

COMMAND | Executing core for `test`

and then the process ended

@bitjson
Copy link

bitjson commented Feb 8, 2018

I'd love to see this feature completed – is anyone working on it right now?

@garris
Copy link
Owner

garris commented Feb 8, 2018

I'd love to see this too. I don't think it's being worked on now. The codebase has changed a bit since this PR -- if someone can rebase against master and validate that it still works on osx we should cut a branch for it.

@fincha
Copy link
Author

fincha commented Feb 14, 2018

I had to stop working on this for now, the company I was working with chosen different way... so sorry guys, maybe some one can pick this up.

@patricknelson
Copy link

patricknelson commented Oct 25, 2019

Just wanted chime in support for this. I’m investigating alternatives to Wraith and I’m very happy to see that not only does BackstopJS have first-class support for Docker, but that also some desire to move toward leveraging Selenium/Webdriver for even more flexibility.

I’m not familiar with the internals of this project, but superficially, it looks like it interfaces directly with puppeteer to handle running Chrome directly on the local machine via an engine configuration. Maybe we could implement Firefox, IE, Edge and support for any browser Selenium supports by specifying selenium as an engine (first layer), then the next layer would be to configure it with some sane defaults, e.g. also point to a Selenium sever running on localhost:4444. Now since we’ve abstracted this to the network layer, we can then intuitively support Docker, docker-compose or even Kubernetes.

Again, only looked at this for an hour or so (burning midnight oil here) but I’m thinking BackstopJS/Selenium/Docker would be a really kickass combination! 😎

@fincha fincha closed this Jan 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants