103 lines
2.8 KiB
JavaScript
103 lines
2.8 KiB
JavaScript
////////////////////////////////////////////////
|
|
// Protractor Browser Capabilities Extensions //
|
|
////////////////////////////////////////////////
|
|
"use strict";
|
|
|
|
module.exports = browser.getCapabilities().then(function(s) {
|
|
var browserName, browserVersion;
|
|
var shortName, shortVersion;
|
|
var ie, ff, ch, sa;
|
|
var platform;
|
|
platform = s.caps_.platform;
|
|
browserName = s.caps_.browserName;
|
|
browserVersion = s.caps_.version;
|
|
shortVersion = browserVersion.split('.')[0];
|
|
ie = /i.*explore/.test(browserName);
|
|
ff = /firefox/.test(browserName);
|
|
ch = /chrome/.test(browserName);
|
|
sa = /safari/.test(browserName);
|
|
|
|
if (ie) {
|
|
shortName = 'ie';
|
|
} else if (ff) {
|
|
shortName = 'ff';
|
|
} else if (ch) {
|
|
shortName = 'ch';
|
|
} else if (sa) {
|
|
shortName = 'sa';
|
|
} else {
|
|
throw new Exception('Unsupported browser: '+ browserName);
|
|
};
|
|
|
|
// Returns one of these: ['ch', 'ff', 'sa', 'ie']
|
|
browser.getShortBrowserName = function() {
|
|
return shortName;
|
|
};
|
|
|
|
// Returns one of these: ['ch33', 'ff27', 'sa7', 'ie11', 'ie10', 'ie9']
|
|
browser.getShortNameVersionAll = function() {
|
|
return shortName + shortVersion;
|
|
};
|
|
|
|
// Returns one of these: ['ch', 'ff', 'sa', 'ie11', 'ie10', 'ie9']
|
|
browser.getShortNameVersion = function() {
|
|
if (ie) {
|
|
return shortName + shortVersion;
|
|
} else {
|
|
return shortName;
|
|
};
|
|
};
|
|
|
|
// Return if current browser is IE, optionally specifying if it is a particular IE version
|
|
browser.isInternetExplorer = function(ver) {
|
|
if (ver == null) {
|
|
return ie;
|
|
} else {
|
|
return ie && ver.toString() === shortVersion;
|
|
}
|
|
};
|
|
|
|
// Function alias
|
|
browser.isIE = browser.isInternetExplorer;
|
|
|
|
browser.isSafari = function() {
|
|
return sa;
|
|
};
|
|
|
|
browser.isFirefox = function() {
|
|
return ff;
|
|
};
|
|
|
|
// Return if current browser is Chrome, optionally specifying if it is a particular Chrome version
|
|
browser.isChrome = function(ver) {
|
|
if (ver == null) {
|
|
return ch;
|
|
} else {
|
|
return ch && ver.toString() === shortVersion;
|
|
}
|
|
};
|
|
|
|
browser.inWindows = function() {
|
|
return /^WIN|XP/.test(platform);
|
|
};
|
|
|
|
browser.inOSX = function() {
|
|
return /^MAC/.test(platform);
|
|
};
|
|
|
|
// Save current webdriver session id for later use
|
|
browser.webdriverRemoteSessionId = s.caps_['webdriver.remote.sessionid'];
|
|
|
|
browser.inSauceLabs = function() {
|
|
return !!(browser.params.inSauceLabs);
|
|
};
|
|
|
|
browser.inBrowserStack = function() {
|
|
return !!(browser.params.inBrowserStack);
|
|
};
|
|
|
|
browser.inTheCloud = function() {
|
|
return !!(browser.params.inSauceLabs || browser.params.inBrowserStack);
|
|
};
|
|
});
|