UNPKG

selenium-webdriver

Version:

The official WebDriver JavaScript bindings from the Selenium project

100 lines (84 loc) 2.8 kB
// Copyright 2013 Selenium committers // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. 'use strict'; var util = require('util'); /** * Proxy configuration object, as defined by the WebDriver wire protocol. * @typedef {{ * proxyType: string, * ftpProxy: (string|undefined), * httpProxy: (string|undefined), * sslProxy: (string|undefined), * noProxy: (string|undefined), * proxyAutoconfigUrl: (string|undefined) * }} */ var ProxyConfig; // PUBLIC API /** * Configures WebDriver to bypass all browser proxies. * @return {!ProxyConfig} A new proxy configuration object. */ exports.direct = function() { return {proxyType: 'direct'}; }; /** * Manually configures the browser proxy. The following options are * supported: * - ftp: Proxy host to use for FTP requests * - http: Proxy host to use for HTTP requests * - https: Proxy host to use for HTTPS requests * - bypass: A list of hosts requests should directly connect to, bypassing * any other proxies for that request. May be specified as a comma * separated string, or a list of strings. * * Behavior is undefined for FTP, HTTP, and HTTPS requests if the * corresponding key is omitted from the configuration options. * * @param {{ftp: (string|undefined), * http: (string|undefined), * https: (string|undefined), * bypass: (string|!Array.<string>|undefined)}} options Proxy * configuration options. * @return {!ProxyConfig} A new proxy configuration object. */ exports.manual = function(options) { return { proxyType: 'manual', ftpProxy: options.ftp, httpProxy: options.http, sslProxy: options.https, noProxy: util.isArray(options.bypass) ? options.bypass.join(',') : options.bypass }; }; /** * Configures WebDriver to configure the browser proxy using the PAC file at * the given URL. * @param {string} url URL for the PAC proxy to use. * @return {!ProxyConfig} A new proxy configuration object. */ exports.pac = function(url) { return { proxyType: 'pac', proxyAutoconfigUrl: url }; }; /** * Configures WebDriver to use the current system's proxy. * @return {!ProxyConfig} A new proxy configuration object. */ exports.system = function() { return {proxyType: 'system'}; };