@@ -34,6 +34,8 @@ export interface PageStabilityOptions {
3434 waitForNetworkIdleTime ?: number ;
3535 /** Maximum time to wait for page load before proceeding anyway */
3636 maximumWaitPageLoadTime ?: number ;
37+ /** Whether to disable visual stability checking */
38+ disableVisualStability ?: boolean ;
3739}
3840
3941/**
@@ -53,7 +55,8 @@ export class PageStabilityAnalyzer {
5355 checkInterval : options . checkInterval ?? 100 , // 200ms
5456 minimumWaitPageLoadTime : options . minimumWaitPageLoadTime ?? DEFAULT_MINIMUM_WAIT_PAGE_LOAD_TIME ,
5557 waitForNetworkIdleTime : options . waitForNetworkIdleTime ?? DEFAULT_WAIT_FOR_NETWORK_IDLE_TIME ,
56- maximumWaitPageLoadTime : options . maximumWaitPageLoadTime ?? DEFAULT_MAXIMUM_WAIT_PAGE_LOAD_TIME
58+ maximumWaitPageLoadTime : options . maximumWaitPageLoadTime ?? DEFAULT_MAXIMUM_WAIT_PAGE_LOAD_TIME ,
59+ disableVisualStability : options . disableVisualStability ?? false
5760 } ;
5861 this . lastStart = Date . now ( ) ;
5962 this . logger = logger . child (
@@ -360,9 +363,11 @@ export class PageStabilityAnalyzer {
360363 }
361364
362365 // Wait for visual stability with whatever time remains, but don't exceed max wait time
363- const remainingForVisual = Math . max ( 0 , maxWaitDeadline - Date . now ( ) ) ;
364- if ( remainingForVisual > 0 ) {
365- await this . waitForVisualStability ( remainingForVisual ) ;
366+ if ( ! this . options . disableVisualStability ) {
367+ const remainingForVisual = Math . max ( 0 , maxWaitDeadline - Date . now ( ) ) ;
368+ if ( remainingForVisual > 0 ) {
369+ await this . waitForVisualStability ( remainingForVisual ) ;
370+ }
366371 }
367372
368373 // Ensure we've waited at least the minimum time
0 commit comments