@applitools/eyes.selenium
Version:
Applitools Eyes SDK for Selenium WebDriver
35 lines (30 loc) • 1.22 kB
JavaScript
;
const { BrowserNames } = require('@applitools/eyes.sdk.core');
const { FirefoxRegionPositionCompensation } = require('./FirefoxRegionPositionCompensation');
const { NullRegionPositionCompensation } = require('./NullRegionPositionCompensation');
const { SafariRegionPositionCompensation } = require('./SafariRegionPositionCompensation');
class RegionPositionCompensationFactory {
/**
* @param {UserAgent} userAgent
* @param {Eyes} eyes
* @param {Logger} logger
* @return {RegionPositionCompensation}
*/
static getRegionPositionCompensation(userAgent, eyes, logger) {
if (userAgent) {
if (userAgent.getBrowser() === BrowserNames.Firefox) {
try {
if (parseInt(userAgent.getBrowserMajorVersion(), 10) >= 48) {
return new FirefoxRegionPositionCompensation(eyes, logger);
}
} catch (ignore) {
return new NullRegionPositionCompensation();
}
} else if (userAgent.getBrowser() === BrowserNames.Safari) {
return new SafariRegionPositionCompensation();
}
}
return new NullRegionPositionCompensation();
}
}
exports.RegionPositionCompensationFactory = RegionPositionCompensationFactory;