New issue
Advanced search Search tips
Starred by 255 users

Comments by non-members will not trigger notification emails to users who starred this issue.

Issue metadata

Status: Available
Owner: ----

Blocked on:
issue chromium:45209



Sign in to add a comment

ChromeDriver2 take screenshot is not full page

Reported by jiexa....@gmail.com, Mar 31 2013

Issue description

In version 2 ChromeDriver started making a screenshot is not the whole page, but only part of it.
Here is some code (the result in Attach)

-------------------
from pyvirtualdisplay import Display
from selenium import webdriver
from threading import Timer

display = Display(visible=0, size=(1200, 800))
display.start()

chromeOps = webdriver.ChromeOptions()
chromeOps._binary_location = "/usr/bin/google-chrome"


driver = webdriver.Chrome('../chromedriver2', port=4445, chrome_options=chromeOps) # Optional argument, if not specified will search path. 
driver.get('http://trinixy.ru')
driver.save_screenshot('screenie.png')
driver.quit()
display.stop()
-------------------



ChromeDriver = 2 (r191457)
Chrome = Google Chrome 26.0.1410.43 
OS = Debian and Ubuntu
 
screenie.png
366 KB View Download
Showing comments 58 - 157 of 157 Older

Comment 58 by a...@wingify.com, Nov 9 2013

The developers are reluctant in solving this bug and even in providing any updates for the same. Very disappointed to see such a behaviour from  such an active community. :(


 Issue 622  has been merged into this issue.
Project Member

Comment 60 by kkania@google.com, Nov 14 2013

 Issue 624  has been merged into this issue.
That's too bad

Comment 62 Deleted

Please fix this bug ASAP

Comment 64 Deleted

No news on this?
Yes, please fix it.  Much appreciated.
please pretty please need it for mobile tests

Comment 68 by j...@jahewson.com, Jan 14 2014

There is a workaround: scroll the page using JavaScript and stitch together the screen shots.

Use `document.documentElement.offsetWidth` (and offsetHeight) to get the overall size of the page, then keep taking screenshots until `document.documentElement.offsetHeight - window.scrollY > document.documentElement.clientHeight` is false, and execute `window.scrollBy(0,document.documentElement.clientHeight)` after every screen shot to scroll the page.

Comment 69 by nirvd...@gmail.com, Jan 14 2014

If you're going to scroll and stitch, I've noticed that chromedriver may return from executeScript before actually scrolling.  If I send a second call to query for the scroll position, however, it appears to "flush" the previous command.  Without that little trick, I was duplicating some portions of the viewport.
Scroll/stitch is not a real solution. All elements with fixed position would appear on each screenshot you take, you'll have JavaScript events firing that may result in changes to the page...

It's an ugly hack that's better than nothing, but not a solution.
Scroll/stitch didn't work properly for me in all the cases, most of the times its duplicating the patch.
I know this is closed & I know it looks like nobody will work on this but ...

Please somebody get this working - we use this for our acceptance test & its really annoying pass all our acceptance tests but still find issues below the fold.

Thanks for all the great work so far.
Blockedon: chromium:45209
Status: Verified
Reopening, since this problem still exists.

However we can't really fix it until some changes are made on the browser side (see https://code.google.com/p/chromium/issues/detail?id=45209).
 Issue 643  has been merged into this issue.
For the love of automated testing please fix this issue asap :)
Project Member

Comment 76 by craigdh@chromium.org, Feb 14 2014

 Issue 704  has been merged into this issue.
By the moment, if you are using python bindings, you can review the next workaround (some variables are our project variable but can be easily replaced)

https://snipt.net/restrada/python-selenium-workaround-for-full-page-screenshot-using-chromedriver-2x/
I forgot mention it. The code use Python Image Library :)

Comment 79 by zabra...@gmail.com, Feb 24 2014

+1 to fix this issue ASAP and give it a high priority.
Please guys, we need your "vote" now.
plz fix asap. thanks
Same critical to me on auto testing!
Hope fix asap.
Any Updates regarding same problem ?? 

Screenshot capture was working perfect in old version. So can you change driver code like it was before ??
Before this can be implemented in ChromeDriver, there need to be some changes made to Chromium first. If you're interested in updates you can follow the issue on the Chromium tracker:

https://code.google.com/p/chromium/issues/detail?id=45209

Unfortunately it is not simple so I'm not sure how long it will take to implement. There are a few cases that make this difficult, such as how to take a full screenshot of a page that uses parallax scrolling.

If you haven't already, feel free to star the issue to get updates as well as to let the developers know you're interested.
I think most of us are using chromedriver screenshot to get automated screenshots of WHOLE web pages. Now this is not the case. Please fix it as soon as possible.

Comment 85 by c...@ckada.com, May 12 2014

I agree. If driver cannot get a fullpage screenshot, why should we use it?

Comment 86 Deleted

Comment 87 Deleted

any upates on this issue? plz fix asap thanks
Any update?. ChromeDriver is the best webdriver in terms of performance and stability but this issue make it inviable for use in many cases.

Comment 90 by pd.l...@gmail.com, Jun 27 2014

Just wondering if the development team intends to fix this issue / make this a feature. Or should we start modifying our test to do scrolling and taking screenshots?

Thanks.
Could you please fix this issue.
Thanks
Please fix this one.  I have to use Firefoxdriver for this to work.

Comment 93 Deleted

Please fix this as I'm starting to have crazy thoughts of using Firefox (AHHHHHH!!)
Everyone can use PhantomJs in the meantime, there even Selenium Phantom driver for this
http://phantomjs.org/screen-capture.html

Comment 96 by nirvd...@gmail.com, Aug 12 2014

Using a browser that isn't Chrome doesn't help anyone verifying results in Chrome, unfortunately.

Comment 97 by yona...@stylls.com, Aug 13 2014

PhantomJS is a good tool, however it does not support inline SVG filters
 
How did the first ChromeDriver worked? Was it some documented API for this? Can someone point to the source code of v1 ChromeDriver?

Comment 99 by xaen...@gmail.com, Aug 13 2014

They've said multiple times that there's an issue on the Chromium side that needs to be fixed first, https://code.google.com/p/chromium/issues/detail?id=45209 . Apparently the hook that Chromedriver used to use doesn't exist as of Chrome 29. 
Any updates on the resolution of this issue? 
Oh man, this is a shame.
Testing on Chrome is useless until this gets fixed.

Comment 103 by m.art...@u7.eu, Nov 21 2014

Since this is a completely different behavious as with firefox I cannot use this feature as a test means. Additionally there seems to be no reliable way to work around this with many variable height pages in our test setup.

So, +1 again, to fix this.
First of all, I love chrome, I love selenium, love all you developers...
Would you please help to fix this little issue as soon as you can????

Status: Untriaged
Please guys help us to use the scripts already created. It would cause lot of rework. This let us down on going for open source items in the future. Please help
I am able to capture the entire page screenshot using Java and C#
I just tried with latest chromedriver 2.14, no luck.
though chrome team providing snapshot as perceived by actual user as per project memebers comment,
there should be any config to provide full snapshot.
@venkates, please suggest if i am missing something.
 
and please also fix chrome driver of Android
Definitely a +1 to fix this! Very disappointing that we can get the full screen shot with FF but not Chrome. This makes certain test failures very difficult to debug.
@venkates, Did you do any special change in your code? 
I am using Python/Selenium/SauceLabs with Chrome 41.0 and I still getting this issue. I wrote a code to "page down" and take a screenshot until the end of the page. But this solution is not good and can take a lot of time. Would be much better if have the same behavior of FF or IE. 

Comment 112 by isha...@gmail.com, Apr 26 2015

2 years and no fix? That's not funny. At all
Ubuntu 14.04, chromedriver 2.15, Chrome 42.0 - still not fixed
Please fix this. 
any updates on this issue...please we're more liaising on chrome.driver. we're looking for this issue to be fixed very urgently to help us all.

Comment 115 by ses...@gmail.com, May 14 2015

Any updates on this issue? 
Please can this be resolved? I think its affecting many people, and some might think its a bug in their own applications
Please fix this. (:
WOW.  2 years later and still no fix.
This is really needed. FF and IE also have support for full-height screenshots.
Looks like still no updates on this
It seems everyone wants the full page screenshot, but I *want* the viewport screenshot.  The web pages that I'm testing change when scrolled and I want to capture intermediate stages.  Please don't take away the ability to screenshot just the visible area.
Also looking forward to getting this bug fixed.
To comment #107:- How were you able to take full page screen shot using Java? Could you please share your code.
Also looking forward to this fix
+1, we also want this feature back
This is really needed, it has been 2 years and no fix.
+1, for the full page screen shot
Definately a +
Interestingly Browserstacks Q&A says on https://www.browserstack.com/question/558

"Some of the results appear as full page while others do not. Are these results authentic?
We provide full page screenshots for all browsers, except Opera and Safari 5.1. For these browsers, we currently provide screenshots of the visible area of the page before scrolling. This is a technical limitation of the browser which we are working hard to overcome."

+1 for chromedriver
The FAQ in question (https://www.browserstack.com/question/558) refers to BrowserStack Screenshots, a separate product, entirely distinct from BrowserStack Automate. 

BrowserStack Screenshots supports full-page screenshots on all browsers, except Opera and Safari 5.1.

On BrowserStack Automate, full-page screenshots are not supported on Chrome v29 and above, because of the limitation in place by ChromeDriver v2.x.

Comment 131 by tob...@gmail.com, Jul 30 2015

Since Chrome is perfectly capable of taking a screenshot of the entire viewport I just resize the browser window to accomodate the entire page.

In Ruby it can be done as shown in this Gist: https://gist.github.com/elcamino/5f562564ecd2fb86f559
As the author of the screenshot system for CrossBrowserTesting.com, I can tell you that the only way we've been able to get full page screenshots consistently and reliably across browsers is to scroll, capture, and append images.  

Even in the case of FF or some IEs which do return a full screenshot from selenium, there are issues where some items don't show up until the page has been scrolled... case in point, www.msn.com doesn't show video images below-the-fold until the page has been scrolled:  http://media.crossbrowsertesting.com/users/197/screenshots/full/z5dfc08780d196eba5d5.png

We could offer a much faster service if reliability from selenium's screenshot was dependable, hence I check in from time to time to see if any progress has been made.  

However, now the W3C Specifies that WebDriver screenshots shall be viewport only: https://w3c.github.io/webdriver/webdriver-spec.html#screenshots

ChromeDriver team will probably not fix this.
Will have to test the Ruby implementation for resizing the browser to be fit the whole webpage.  Not sure that all OSs will let you do that... it's sort of what IEDriver is doing.

Another option using Java:
http://blog.xebia.in/2015/07/05/capture-full-page-screenshot-for-chrome-browser-in-selenium-webdriver/

Maybe someone knows workaround for screenshot issue for robot framework?
Is there a way to use extensions that currently support the scroll and stitch capability and use it with webdriver?

I have been waiting patiently for this feature to get addressed but it appears there is little to no work being done it seems.

Really hurting to find a work around now.

Comment 136 by sakha...@tutu.ru, Oct 20 2015

Please, fix this bug!
Almost 2 years later still no solution ? 
The above Ashot jar which can be used for full screen shots works properly with Windows ,but not with MAC systems..please suggest any other alternative.
Can we get a resolution for mac systems where full screen shot doesnt work.
Any plans to add this?
The full page screenshot still doesn't work on chrome driver, which works on IE driver. Are there any plans to fix the problem? Or is there any other way to achieve this requirement?

Comment 142 by bye...@gmail.com, Aug 4 2016

v2.22, still bad. 
Nothing change in the past 3 years.

Just wait.
Try using this library 

https://www.assertthat.com/posts/selenium_shutterbug_make_custom_screenshots_with_selenium_webdriver

Sources on github https://github.com/assertthat/selenium-shutterbug

Provides ability to make full page screenshot in Chrome and some other extended features, tested on Windows and OS X.

Any joy with a solution??
I am using chrome driver version 2.25 and still see only part of the screenshot. Is there any fix for this?
Still unable to capture full screenshot in chrome browser like FF and IE browsers,Please suggest if any one got solution to this issue.

Request you to fix this asap.
We are also looking for a way to create a full screenshot. Can't you enable the old feature (which worked, but wasn't 100% accurate) so we can at least use it as an alternative and create two screenshots (the accurate one, and the full but less accurate one)?

Best regards,
D.R.

Comment 148 Deleted

Comment 149 Deleted

There are two solutions at present for taking full page screenshots and both have issues:

1. Scroll the page, take screenshot of each "frame", then stitch them together

Issues:

- Fixed position elements will "follow" you down the page. You can prevent this by hiding them after the first frame.
- Any elements that change position based on scrollLeft/scrollTop will be potentially captured mid-transition (e.g. parallax).
- Anything animated (carousels, videos etc) captured across two frames will look weird.
- ANYTHING that happens on scroll event may cause weirdness and it's impossible to code for every edge case.

2. Find the full height of the page and resize the browser/viewport to this value

This is the preferred solution over the above, however:

Issue:

- Elements with height proportionate to viewport height (vh units in CSS) will resize e.g. if there's a "hero" section set at 90vh, when you resize the browser it will still take up 90% of the viewport and the screenshot is therefore useless.
I am also facing the same full page screenshot issue. I can see the two solutions in above. please share the script too..

Thanks in Advance

Comment 152 Deleted

Does this Chrome update have any effect in fixing the issue?
https://developers.google.com/web/updates/2017/04/devtools-release-notes#screenshots
It doesn't appear that the new built-in-to-chrome take full screenshot functionality is callable by API however it does now seem straight forward to implement using similar code? 

I think the path would be updating Chrome Devtools  Page.captureScreenshot
to have an additional item on either viewport or extra parameter for scrolling ...   and following that webdriver could take advantage of that.  The documented selenium preference for TakeScreenshot is then to prefer a scrolling screen shot ( https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/TakesScreenshot.html )


https://chromedevtools.github.io/devtools-protocol/tot/Page/ has the devtools information.
Project Member

Comment 155 by johnchen@chromium.org, Nov 2 2017

Status: Available (was: Untriaged)
Is it fixed now in chrome 64 version..it's  long time the issue is pending.
Please let me know, once it got fixed
Showing comments 58 - 157 of 157 Older

Sign in to add a comment