selenium-node-webdriver
Advanced tools
+18
-25
@@ -1,26 +0,19 @@ | ||
| var webdriver = require('selenium-node-webdriver'); | ||
| var wd = require('selenium-node-webdriver'); | ||
| var driver = new webdriver.Builder(). | ||
| usingServer('http://localhost:4444/wd/hub'). | ||
| withCapabilities({ | ||
| 'browserName': 'chrome', | ||
| 'version': '', | ||
| 'platform': 'ANY', | ||
| 'javascriptEnabled': true | ||
| }). | ||
| build(); | ||
| driver.get('http://www.google.com'). | ||
| then(function () { | ||
| return driver.findElement(webdriver.By.name('q')).sendKeys('webdriver'); | ||
| }). | ||
| then(function () { | ||
| return driver.findElement(webdriver.By.name('btnG')).click(); | ||
| }). | ||
| then(function () { | ||
| return driver.getTitle(); | ||
| }). | ||
| then(function (title) { | ||
| console.log('Title:', title); | ||
| driver.quit(); | ||
| }); | ||
| wd.build(null, function (driver) { | ||
| driver.get('http://www.google.com'). | ||
| then(function () { | ||
| return driver. | ||
| findElement(wd.webdriver.By.name('q')).sendKeys('webdriver'); | ||
| }). | ||
| then(function () { | ||
| return driver.findElement(wd.webdriver.By.name('btnG')).click(); | ||
| }). | ||
| then(function () { | ||
| return driver.getTitle(); | ||
| }). | ||
| then(function (title) { | ||
| console.log('Title:', title); | ||
| driver.quit(); | ||
| }); | ||
| }); |
+67
-1
@@ -1,1 +0,67 @@ | ||
| module.exports = require('node/webdriver'); | ||
| /* vim: set et ts=2 sts=2 sw=2: */ | ||
| var http = require('http'); | ||
| var webdriver = require('./node/webdriver'); | ||
| var _ = require('lodash'); | ||
| function pingWebDriverServer(server, maxAttempts, callback) { | ||
| var attempt = 0; | ||
| var url = 'http://' + server.host + ':' + server.port; | ||
| function ping() { | ||
| attempt++; | ||
| http.get(url + '/status', function (response) { | ||
| callback(); | ||
| }).on('error', function (e) { | ||
| if (attempt < maxAttempts) { | ||
| setTimeout(ping, 500); | ||
| } else { | ||
| callback(e); | ||
| } | ||
| }); | ||
| } | ||
| ping(); | ||
| } | ||
| var defaultConfig = { | ||
| server: { | ||
| host: 'localhost', | ||
| port: 4444 | ||
| }, | ||
| capabilities: { | ||
| 'browserName': 'chrome', | ||
| 'version': '', | ||
| 'platform': 'ANY', | ||
| 'javascriptEnabled': true | ||
| } | ||
| }; | ||
| function mergeDefaults(config, defaults) { | ||
| config = _.defaults(config || {}, defaults); | ||
| _.keys(defaults).forEach(function (v, k) { | ||
| if (_.isArray(v) || _.isObject(v)) { | ||
| config[k] = mergeDefaults(config[k], v); | ||
| } | ||
| }); | ||
| return config; | ||
| } | ||
| module.exports.webdriver = webdriver; | ||
| module.exports.build = function (config, callback) { | ||
| if (!callback) { | ||
| callback = config; | ||
| config = {}; | ||
| } | ||
| config = mergeDefaults(config, defaultConfig); | ||
| pingWebDriverServer(config.server, 5, function () { | ||
| callback(new webdriver.Builder(). | ||
| usingServer( | ||
| 'http://' + config.server.host + ':' + config.server.port + '/wd/hub'). | ||
| withCapabilities(config.capabilities). | ||
| build()); | ||
| }); | ||
| }; |
+7
-3
| { | ||
| "name": "selenium-node-webdriver", | ||
| "version": "0.1.0", | ||
| "version": "0.1.1", | ||
| "author": "Lon Ingram <lon@waterfallmobile.com>", | ||
| "description": "Node.js WebDriver client from the Selenium project", | ||
| "main": "./lib/node/webdriver", | ||
| "license": "http://www.apache.org/licenses/LICENSE-2.0" | ||
| "main": "./lib/index", | ||
| "license": "http://www.apache.org/licenses/LICENSE-2.0", | ||
| "dependencies": { | ||
| "lodash": "1.0.0-rc.3" | ||
| } | ||
| } |
+1
-2
@@ -12,3 +12,2 @@ # selenium-node-webdriver | ||
| phantomjs --webdriver=4444 & | ||
| sleep 1 | ||
| node node_modules/selenium-node-webdriver/examples/hello.js | ||
@@ -24,3 +23,3 @@ ``` | ||
| withCapabilities({ | ||
| 'browserName': 'chrome', | ||
| 'browserName': 'phantomjs', | ||
| 'version': '', | ||
@@ -27,0 +26,0 @@ 'platform': 'ANY', |
609408
0.22%15343
0.33%1
Infinity%44
-2.22%8
14.29%+ Added
+ Added