You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
3.8 KiB
123 lines
3.8 KiB
// Copyright 2012 Software Freedom Conservancy. All Rights Reserved.
|
|
//
|
|
// 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.
|
|
|
|
goog.provide('webdriver.AbstractBuilder');
|
|
|
|
goog.require('webdriver.Capabilities');
|
|
goog.require('webdriver.process');
|
|
|
|
|
|
|
|
/**
|
|
* Creates new {@code webdriver.WebDriver} clients. Upon instantiation, each
|
|
* Builder will configure itself based on the following environment variables:
|
|
* <dl>
|
|
* <dt>{@code webdriver.AbstractBuilder.SERVER_URL_ENV}</dt>
|
|
* <dd>Defines the remote WebDriver server that should be used for command
|
|
* command execution; may be overridden using
|
|
* {@code webdriver.AbstractBuilder.prototype.usingServer}.</dd>
|
|
* </dl>
|
|
* @constructor
|
|
*/
|
|
webdriver.AbstractBuilder = function() {
|
|
|
|
/**
|
|
* URL of the remote server to use for new clients; initialized from the
|
|
* value of the {@link webdriver.AbstractBuilder.SERVER_URL_ENV} environment
|
|
* variable, but may be overridden using
|
|
* {@link webdriver.AbstractBuilder#usingServer}.
|
|
* @private {string}
|
|
*/
|
|
this.serverUrl_ = webdriver.process.getEnv(
|
|
webdriver.AbstractBuilder.SERVER_URL_ENV);
|
|
|
|
/**
|
|
* The desired capabilities to use when creating a new session.
|
|
* @private {!webdriver.Capabilities}
|
|
*/
|
|
this.capabilities_ = new webdriver.Capabilities();
|
|
};
|
|
|
|
|
|
/**
|
|
* Environment variable that defines the URL of the WebDriver server that
|
|
* should be used for all new WebDriver clients. This setting may be overridden
|
|
* using {@code #usingServer(url)}.
|
|
* @type {string}
|
|
* @const
|
|
* @see webdriver.process.getEnv
|
|
*/
|
|
webdriver.AbstractBuilder.SERVER_URL_ENV = 'wdurl';
|
|
|
|
|
|
/**
|
|
* The default URL of the WebDriver server to use if
|
|
* {@link webdriver.AbstractBuilder.SERVER_URL_ENV} is not set.
|
|
* @type {string}
|
|
* @const
|
|
*/
|
|
webdriver.AbstractBuilder.DEFAULT_SERVER_URL = 'http://localhost:4444/wd/hub';
|
|
|
|
|
|
/**
|
|
* Configures which WebDriver server should be used for new sessions. Overrides
|
|
* the value loaded from the {@link webdriver.AbstractBuilder.SERVER_URL_ENV}
|
|
* upon creation of this instance.
|
|
* @param {string} url URL of the server to use.
|
|
* @return {!webdriver.AbstractBuilder} This Builder instance for chain calling.
|
|
*/
|
|
webdriver.AbstractBuilder.prototype.usingServer = function(url) {
|
|
this.serverUrl_ = url;
|
|
return this;
|
|
};
|
|
|
|
|
|
/**
|
|
* @return {string} The URL of the WebDriver server this instance is configured
|
|
* to use.
|
|
*/
|
|
webdriver.AbstractBuilder.prototype.getServerUrl = function() {
|
|
return this.serverUrl_;
|
|
};
|
|
|
|
|
|
/**
|
|
* Sets the desired capabilities when requesting a new session. This will
|
|
* overwrite any previously set desired capabilities.
|
|
* @param {!(Object|webdriver.Capabilities)} capabilities The desired
|
|
* capabilities for a new session.
|
|
* @return {!webdriver.AbstractBuilder} This Builder instance for chain calling.
|
|
*/
|
|
webdriver.AbstractBuilder.prototype.withCapabilities = function(capabilities) {
|
|
this.capabilities_ = new webdriver.Capabilities(capabilities);
|
|
return this;
|
|
};
|
|
|
|
|
|
/**
|
|
* @return {!webdriver.Capabilities} The current desired capabilities for this
|
|
* builder.
|
|
*/
|
|
webdriver.AbstractBuilder.prototype.getCapabilities = function() {
|
|
return this.capabilities_;
|
|
};
|
|
|
|
|
|
/**
|
|
* Builds a new {@link webdriver.WebDriver} instance using this builder's
|
|
* current configuration.
|
|
* @return {!webdriver.WebDriver} A new WebDriver client.
|
|
*/
|
|
webdriver.AbstractBuilder.prototype.build = goog.abstractMethod;
|