webdriver-sizzle
Advanced tools
Comparing version 0.0.6 to 0.2.0
// Generated by CoffeeScript 1.7.1 | ||
var fs, path, selenium; | ||
var fs, path; | ||
selenium = require('selenium-webdriver'); | ||
path = require('path'); | ||
@@ -10,18 +8,61 @@ | ||
module.exports = function(driver) { | ||
var all, one, sizzleCode; | ||
sizzleCode = fs.readFileSync(path.join(__dirname, '../lib', 'sizzle.min.js')); | ||
/* | ||
@param driver - a built driver instance | ||
@param selenium - the selenium module. | ||
very important that these are using the same code/version, | ||
b/c of the library's global control flow. | ||
*/ | ||
module.exports = function(driver, selenium) { | ||
var Deferred, WebElement, checkSizzleExists, injectSizzle, one; | ||
if (selenium == null) { | ||
selenium = require('selenium-webdriver'); | ||
} | ||
if (!(driver instanceof selenium.WebDriver)) { | ||
throw new Error("Driver passed to webdriver-sizzle must be a WebDriver instance."); | ||
} | ||
Deferred = selenium.promise.Deferred; | ||
WebElement = selenium.WebElement; | ||
checkSizzleExists = function() { | ||
return driver.executeScript(function() { | ||
return window.Sizzle != null; | ||
}); | ||
}; | ||
injectSizzle = function() { | ||
var sizzleCode; | ||
sizzleCode = fs.readFileSync(path.join(__dirname, '../lib', 'sizzle.min.js')); | ||
return driver.executeScript("var module = {exports: {}};\n" + sizzleCode + "\nwindow.Sizzle = module.exports;"); | ||
}; | ||
one = function(selector) { | ||
var element; | ||
element = driver.findElement(selenium.By.js("var module = {exports: {}};\n" + sizzleCode + "\nvar Sizzle = module.exports;\nreturn (Sizzle(" + (JSON.stringify(selector)) + ") || [])[0];")); | ||
element.then(null, function(err) { | ||
var d; | ||
d = new Deferred; | ||
checkSizzleExists().then(function(sizzleExists) { | ||
if (!sizzleExists) { | ||
return injectSizzle(); | ||
} | ||
}).then(function() { | ||
var elementPromise; | ||
elementPromise = driver.findElement(selenium.By.js(function(selector) { | ||
return (window.Sizzle(selector) || [])[0]; | ||
}, selector)); | ||
return d.fulfill(elementPromise); | ||
}).thenCatch(function(err) { | ||
throw new Error("Selector " + selector + " matches nothing"); | ||
}); | ||
return element; | ||
return new WebElement(driver, d.promise); | ||
}; | ||
all = function(selector) { | ||
return driver.findElements(selenium.By.js("var module = {exports: {}};\n" + sizzleCode + "\nvar Sizzle = module.exports;\nreturn (Sizzle(" + (JSON.stringify(selector)) + ") || []);")); | ||
one.all = function(selector) { | ||
return checkSizzleExists().then(function(sizzleExists) { | ||
if (!sizzleExists) { | ||
return injectSizzle(); | ||
} | ||
}).then(function() { | ||
var elementPromise; | ||
return elementPromise = driver.findElements(selenium.By.js(function(selector) { | ||
return window.Sizzle(selector) || []; | ||
}, selector)); | ||
}); | ||
}; | ||
one.all = all; | ||
return one; | ||
}; |
{ | ||
"name": "webdriver-sizzle", | ||
"version": "0.0.6", | ||
"version": "0.2.0", | ||
"description": "Locate a selenium-webdriver element by sizzle CSS selector", | ||
"author": "Good Eggs <open-source@goodeggs.com>", | ||
"contributors": [ | ||
"Adam Hull <adam@hmlad.com>" | ||
"Adam Hull <adam@hmlad.com>", | ||
"Ben Buckman <ben@benbuckman.net>" | ||
], | ||
@@ -26,5 +27,4 @@ "main": "lib/webdriver_sizzle.js", | ||
"mocha": "~1.x.x", | ||
"selenium-webdriver": "~2.39.0", | ||
"selenium-webdriver": ">=2.42.0", | ||
"phantomjs": "~1.9.7-1", | ||
"jsmin": "~1.0.1", | ||
"sizzle": "~1.1.0", | ||
@@ -34,3 +34,3 @@ "uglify-js": "~2.4.12" | ||
"peerDependencies": { | ||
"selenium-webdriver": ">=2.39.0" | ||
"selenium-webdriver": ">=2.42.0" | ||
}, | ||
@@ -42,3 +42,4 @@ "scripts": { | ||
"prepublish": "npm run-script build" | ||
} | ||
}, | ||
"license": "MIT" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No License Found
License(Experimental) License information could not be found.
Found 1 instance in 1 package
27657
6
13
0
120
1