python-needle / needle

Automated tests for your CSS.
https://needle.readthedocs.io/
Other
590 stars 50 forks source link

black screenshot for element inside scrollable div but outside visible area #53

Open andreabisello opened 8 years ago

andreabisello commented 8 years ago

E.g.

you have a div

this div contains some elements

those elements height is higher than parent div height so your div is scrollable

if you try to assert element inside scrollable area but out of the visible area, you got a black screenshot.

this is the example code

    def test_scrollable_not_scrolled(self):
        self.driver.get('https://rawgit.com/abioneperhobby/needle/master/demo/scroll.html')
        self.assertScreenshot('#underscroll', 'not_scrolled')

    def test_scrollable_scrolled(self):
        self.driver.get('https://rawgit.com/abioneperhobby/needle/master/demo/scroll.html')
        self.driver.execute_script('document.getElementById("scrollable").scrollTop = document.getElementById("scrollable").scrollHeight')
        self.assertScreenshot('#underscroll', 'underscrolled')

in the example i open a page with a scrollable div. This scrollable div contains a green rectangle in the bottom. If you try to make assertion , you obtain a black square. In the second test, i scroll down the div before taking screenshot. Scrolling down the div, i obtain the true screenshot.

andreabisello commented 8 years ago

image image