All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.applitools.eyes.selenium.capture.MobileScreenshotImageProvider Maven / Gradle / Ivy

package com.applitools.eyes.selenium.capture;

import com.applitools.eyes.IEyesJsExecutor;
import com.applitools.eyes.Logger;
import com.applitools.eyes.RectangleSize;
import com.applitools.eyes.UserAgent;
import com.applitools.eyes.selenium.EyesDriverUtils;
import com.applitools.eyes.selenium.SeleniumEyes;
import com.applitools.eyes.selenium.SeleniumJavaScriptExecutor;
import com.applitools.eyes.selenium.wrappers.EyesSeleniumDriver;
import org.openqa.selenium.TakesScreenshot;

public class MobileScreenshotImageProvider extends TakesScreenshotImageProvider {

    protected final SeleniumEyes eyes;
    protected final IEyesJsExecutor jsExecutor;
    protected final UserAgent userAgent;
    private RectangleSize cachedViewportSize = null;
    private String cachedUrl;

    public MobileScreenshotImageProvider(SeleniumEyes eyes, Logger logger, TakesScreenshot tsInstance, UserAgent userAgent) {
        super(logger, tsInstance);
        this.eyes = eyes;
        this.jsExecutor = new SeleniumJavaScriptExecutor((EyesSeleniumDriver)eyes.getDriver());
        this.userAgent = userAgent;
    }

    protected RectangleSize getViewportSize() {
        EyesSeleniumDriver driver = (EyesSeleniumDriver)eyes.getDriver();
        if (cachedViewportSize == null || !driver.getCurrentUrl().equals(cachedUrl)) {
            cachedUrl = driver.getCurrentUrl();
            cachedViewportSize = EyesDriverUtils.getViewportSize(driver);
        }
        return cachedViewportSize;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy