theintern / visual-plugin

Visual Regression Testing for Intern
Mozilla Public License 2.0
29 stars 7 forks source link

Need scrolling API for visualTest #5

Open vrozaev opened 7 years ago

vrozaev commented 7 years ago

Problem: Right now visualTest didn't provide any API for page scroll. The only thing which you can do is open the page and take screenshot right after that.

visualTest({
    url: basicPageUrl,
    width: 640,
    height: 480,
    missingBaseline: 'snapshot'
}),

In other tests I can write this:

registerSuite({
    name: 'longPage',

    'footer': function () {
        return this.remote
            .get(longPageUrl)
            .setWindowSize(height, width)

            .touchScroll(null, null, offset)
            .takeScreenshot()
            .then(assertVisuals(this, {
                missingBaseline: 'snapshot'
            }));
         }
});

But the "touchScroll" didn't guarantee you that you scroll to the right position. And seems that it's didn't wait for scroll complete.

Questions:

  1. How I should scroll page when I write test manually, without "visualTest"?
  2. Is it possible to provide API for making screenshot of specified part of the page?
devpaul commented 7 years ago

How I should scroll page when I write test manually, without "visualTest"?

Scrolling doesn't have a consistent implementation across browsers. Even within Chrome, they have changed how the scroll coordinates are calculated (especially on mobile). I would use something like moveMouseTo if possible.

Is it possible to provide API for making screenshot of specified part of the page?

I'd like to see an API for making a screenshot of a specified part of the page. When we initially released this feature we wanted to keep it simple, but we had talked about the ability to screenshot a component by querySelector in the configuration-based visual test. What were you thinking regarding feature-set and what would the configuration look like?

wuservices commented 6 years ago

@devpaul being able to screenshot by selector seems like a great idea and a good way to isolate specific components on a page without having to make a ton of unique test pages in order to isolate testing for one specific component