-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Responsive snapshot capture + slow scrolling for CS #594
Conversation
index.js
Outdated
@@ -67,17 +67,29 @@ async function captureResponsiveDOM(driver, options) { | |||
// Setup the resizeCount listener if not present | |||
/* istanbul ignore next: no instrumenting injected code */ | |||
await driver.executeScript('PercyDOM.waitForResize()'); | |||
let height = currentHeight; | |||
if (process.env.RESPONSIVE_CAPTURE_USE_MIN_HEIGHT) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add prefix of PERCY_
index.js
Outdated
lastWindowWidth = width; | ||
} | ||
|
||
if (process.env.RESPONSIVE_CAPTURE_SLEEP_TIME) { | ||
await new Promise(resolve => setTimeout(resolve, parseInt(process.env.RESPONSIVE_CAPTURE_SLEEP_TIME) * 1000)); | ||
} | ||
|
||
if (process.env.RESPONSIVE_CAPTURE_SCROLL_ENABLED) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (process.env.RESPONSIVE_CAPTURE_SCROLL_ENABLED) { | |
if (process.env.PERCY_ENABLE_LAZY_LOADING_SCROLL) { |
index.js
Outdated
lastWindowWidth = width; | ||
} | ||
|
||
if (process.env.RESPONSIVE_CAPTURE_SLEEP_TIME) { | ||
await new Promise(resolve => setTimeout(resolve, parseInt(process.env.RESPONSIVE_CAPTURE_SLEEP_TIME) * 1000)); | ||
} | ||
|
||
if (process.env.RESPONSIVE_CAPTURE_SCROLL_ENABLED) { | ||
let scrollSleep = 0.45; | ||
if (process.env.RESPONSIVE_CAPTURE_SCROLL_TIME) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (process.env.RESPONSIVE_CAPTURE_SCROLL_TIME) { | |
if (process.env.PERCY_LAZY_LOAD_SCROLL_TIME) { |
index.js
Outdated
if (process.env.RESPONSIVE_CAPTURE_SCROLL_ENABLED) { | ||
let scrollSleep = 0.45; | ||
if (process.env.RESPONSIVE_CAPTURE_SCROLL_TIME) { | ||
scrollSleep = parseFloat(process.env.RESPONSIVE_CAPTURE_SCROLL_TIME); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
scrollSleep = parseFloat(process.env.RESPONSIVE_CAPTURE_SCROLL_TIME); | |
scrollSleep = parseFloat(process.env. PERCY_LAZY_LOAD_SCROLL_TIME); |
index.js
Outdated
|
||
let page = 1; | ||
// Break the loop if maximum scroll height 25000px is reached | ||
while (scrollHeight > current && current < 25000) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
25000
read it from constants
index.js
Outdated
// Get back to top | ||
await driver.executeScript('window.scrollTo(0, 0)'); | ||
let sleepAfterScroll = 1; | ||
if (process.env.SLEEP_AFTER_SCROLL_DONE) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (process.env.SLEEP_AFTER_SCROLL_DONE) { | |
if (process.env.PERCY_SLEEP_AFTER_LAZY_LOAD_COMPLETE) { |
index.js
Outdated
await driver.executeScript('window.scrollTo(0, 0)'); | ||
let sleepAfterScroll = 1; | ||
if (process.env.SLEEP_AFTER_SCROLL_DONE) { | ||
sleepAfterScroll = parseFloat(process.env.SLEEP_AFTER_SCROLL_DONE); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sleepAfterScroll = parseFloat(process.env.SLEEP_AFTER_SCROLL_DONE); | |
sleepAfterScroll = parseFloat(process.env.PERCY_SLEEP_AFTER_LAZY_LOAD_COMPLETE); |
index.js
Outdated
@@ -67,17 +68,29 @@ async function captureResponsiveDOM(driver, options) { | |||
// Setup the resizeCount listener if not present | |||
/* istanbul ignore next: no instrumenting injected code */ | |||
await driver.executeScript('PercyDOM.waitForResize()'); | |||
let height = currentHeight; | |||
if (process.env.PERCY_RESPONSIVE_CAPTURE_USE_MIN_HEIGHT) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if (process.env.PERCY_RESPONSIVE_CAPTURE_USE_MIN_HEIGHT) { | |
if (process.env.PERCY_RESPONSIVE_CAPTURE_MIN_HEIGHT) { |
index.js
Outdated
lastWindowWidth = width; | ||
} | ||
|
||
if (process.env.RESPONSIVE_CAPTURE_SLEEP_TIME) { | ||
await new Promise(resolve => setTimeout(resolve, parseInt(process.env.RESPONSIVE_CAPTURE_SLEEP_TIME) * 1000)); | ||
} | ||
|
||
if (process.env.PERCY_ENABLE_LAZY_LOADING_SCROLL) { | ||
let scrollSleep = 0.45; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Constant variable?
index.js
Outdated
@@ -252,3 +265,28 @@ module.exports.percyScreenshot = async function percyScreenshot(driver, name, op | |||
module.exports.isPercyEnabled = async function isPercyEnabled() { | |||
return await utils.isPercyEnabled(); | |||
}; | |||
|
|||
module.exports.slowScrollToBottom = async (driver, timeInSeconds = 0.45) => { | |||
let scrollHeight = Math.min(await driver.executeScript('return document.documentElement.scrollHeight'), 25000); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shouldn't the constant variable be used here?
} | ||
// Get back to top | ||
await driver.executeScript('window.scrollTo(0, 0)'); | ||
let sleepAfterScroll = 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
default sleep? variable?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is sleep after we get back to top
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
since we are reseting it based on env variable it is variable(let)
ENV added