Skip to content
This repository has been archived by the owner on Dec 18, 2019. It is now read-only.

when taking screenshots with a mac, the images are incorrect #52

Open
psbanka opened this issue Jan 26, 2015 · 14 comments
Open

when taking screenshots with a mac, the images are incorrect #52

psbanka opened this issue Jan 26, 2015 · 14 comments

Comments

@psbanka
Copy link

psbanka commented Jan 26, 2015

Thanks for all your work on this library. I love webdrivercss! In fact, I am working on an effort to replace all our phantomcss tests with webdrivercss. In addition, I am planning to give a talk to our local JavaScript meetup about this great project!

One oddity I am finding is that if I run webdriverio with webdrivercss on our (Linux-based) continuous-integration system, the screen-capture works flawlessly. However, if I run the same suite of tests on a mac (with a retina display), I find that the images produced by webdrivercss are the correct size but are oddly scaled and inappropriate. (FWIW, I have often found that other screen-capture with a retina display can produce similar oddly-scaled images for other applications).

Is there a work-around for this problem? I'd be happy to provide a pull-request if you might point me toward where in the code the issue might lay?

Thanks!

On linux: appsdropdown appspopover regression
on a mac: appsdropdown appspopover baseline

on linux: navbar dialogbody regression
on a mac: navbar dialogbody baseline

@psbanka
Copy link
Author

psbanka commented Jan 27, 2015

I have confirmed that this is related to the retina display only. If I use (only) an external display on a Macbook pro, screenshots come out the same as they do on any other platform.

@christian-bromann
Copy link
Contributor

@psbanka thank you so much for your kind words!

Selenium seems to create a way bigger image on retina displays than on normal screens. I had similar problems when working on mobile support (iPhone/iPad). Still haven't figured out what's the best way to tackle that problem. I probably need to resize the image down to the actual document size but then I loose valuable information of the screenshot. Other way would be to scale up the element boundaries. Both ways need to get tested and evaluated.

@TheSavior
Copy link
Contributor

Does window.devicePixelRatio help? Figuring out the size and location of an element by scaling up like this: element.offsetWidth * window.devicePixelRatio. https://developer.mozilla.org/en-US/docs/Web/API/Window.devicePixelRatio

@jhnns
Copy link

jhnns commented Mar 4, 2015

Having the same issue. The generated screenshot has the correct size, but all dom elements are twice as big.

@obsidianart
Copy link

Adding a comment to be notified, I haven't found a solution yet

@glesperance
Copy link

We're having this problem in our team too. Older mac screenshots do not compare successfully to newer (retina) macs

@spaceribs
Copy link

👍

@scottyeck
Copy link

Also having this issue :)

@acvetkov
Copy link

acvetkov commented Sep 4, 2015

+1

@TheSavior
Copy link
Contributor

Someone should really try experimenting by scaling the crop rectangle by window.devicePixelRatio and see if that just solves this outright. I'm guessing it will.

@levkivskii
Copy link

I was trying to scale up element size to retina size but screens unfortunately still are cut.

@KevinGreene
Copy link

@TheSavior Yes, scaling by window.devicePixelRatio now works just fine as the screens are no longer cut since #116. Thanks for the advice!

@c-vetter
Copy link

Has there been any movement on this in the meantime?

@aircon-chen
Copy link

@TheSavior thanks , I find out the solution from your tip.
In my code, I use selenium screenshot full page for chrome and firefox.
I Use the stitch way fulfill my requirement, and the results are incorrect like you mention.
And I resize the screenshot by divide my device ratio. it works perfectly.
thanks : )

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests