@applitools/eyes.selenium
Version:
Applitools Eyes SDK for Selenium WebDriver
36 lines (31 loc) • 1.24 kB
JavaScript
;
const { BrowserNames } = require('@applitools/eyes.sdk.core');
const { TakesScreenshotImageProvider } = require('./TakesScreenshotImageProvider');
const { FirefoxScreenshotImageProvider } = require('./FirefoxScreenshotImageProvider');
const { SafariScreenshotImageProvider } = require('./SafariScreenshotImageProvider');
class ImageProviderFactory {
/**
* @param {UserAgent} userAgent
* @param {Eyes} eyes
* @param {Logger} logger
* @param {EyesWebDriver} driver
* @return {ImageProvider}
*/
static getImageProvider(userAgent, eyes, logger, driver) {
if (userAgent) {
if (userAgent.getBrowser() === BrowserNames.Firefox) {
try {
if (parseInt(userAgent.getBrowserMajorVersion(), 10) >= 48) {
return new FirefoxScreenshotImageProvider(eyes, logger, driver);
}
} catch (ignored) {
return new TakesScreenshotImageProvider(logger, driver);
}
} else if (userAgent.getBrowser() === BrowserNames.Safari) {
return new SafariScreenshotImageProvider(eyes, logger, driver, userAgent);
}
}
return new TakesScreenshotImageProvider(logger, driver);
}
}
exports.ImageProviderFactory = ImageProviderFactory;