src/capabilities/chrome.capabilities.js
import * as fs from "fs";
// Universal chrome options
const chromeOptions = {
args: [
"--start-maximized",
"--disable-infobars",
"--disable-user-media-security",
"--use-fake-ui-for-media-stream",
"--use-fake-device-for-media-stream",
"--ignore-certificate-errors"
],
prefs: {
credentials_enable_service: false, // eslint-disable-line camelcase
"profile.password_manager_enabled": false,
"profile.default_content_setting_values.notifications": 2,
profile: {
// eslint-disable-next-line camelcase
content_settings: {
exceptions: {
// eslint-disable-next-line camelcase
media_stream_camera: {
"https://*,*": {
setting: 1
}
},
// eslint-disable-next-line camelcase
media_stream_mic: {
"https://*,*": {
setting: 1
}
}
}
}
}
},
extensions: [fs.readFileSync("./lifesize_extension.crx", "base64")]
};
// If sauce, set proper path and capture source
if (process.env.USE_SAUCE) {
chromeOptions.args.push(
"--use-file-for-fake-video-capture=/tmp/node/mounted/students.y4m"
);
chromeOptions.args.push("--auto-select-desktop-capture-source=Entire screen");
} else {
// chromeOptions.args.push(
// "--use-file-for-fake-video-capture=./y4m_files/students.y4m"
// );
chromeOptions.args.push("--auto-select-desktop-capture-source=Entire screen");
}
module.exports = {
host: process.env.HOST || "localhost",
port: process.env.PORT || "4444",
user: process.env.SAUCE_USERNAME,
key: process.env.SAUCE_ACCESS_KEY,
path: "/wd/hub",
logLevel: process.env.LOG_LEVEL || "silent",
desiredCapabilities: {
maxInstances: 1,
browserName: process.env.BROWSER_NAME || "chrome",
acceptSslCerts: true,
acceptInsecureCerts: true,
// chromedriverVersion: process.env.CHROME_DRIVER_VERSION || "2.30",
// platform: process.env.PLATFORM || "macOS 10.12",
screenResolution: process.env.SCREEN_RESOLUTION || "1400x1050",
// version: process.env.VERSION || "61",
idleTimeout: process.env.IDLE_TIMEOUT || "270", // sauce labs idles
prerun: {
executable:
"https://s3.amazonaws.com/y4mfiles.lifesizecloudbeta.com/getY4m.sh",
background: "false"
},
chromeOptions: chromeOptions
}
};