Skip to content

Instantly share code, notes, and snippets.

@alexishevia
Created October 10, 2016 01:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexishevia/304a95b880b7811034ad67656483cb48 to your computer and use it in GitHub Desktop.
Save alexishevia/304a95b880b7811034ad67656483cb48 to your computer and use it in GitHub Desktop.
var promise = require('selenium-webdriver/lib/promise').Promise;
var driver = require('./getWebDriver')();
exports.seconds = function(seconds){
return new promise(function(resolve, reject){
setTimeout(resolve, seconds * 1000);
});
}
exports.elementTextMatches = function(selector, regex){
return driver.wait(function(){
return driver.findElements(selector)
.then(function(els){
if(els.length > 0){
return driver.findElement(selector).getText();
}
else {
return false;
}
})
.then(function(text){
return text.match && text.match(regex);
});
});
}
exports.elementIsNotVisible = function(selector){
return driver.wait(function(){
return driver.findElements(selector)
.then(function(els){
if(els.length === 0){
return true; // element is not present in page
}
else {
return els[0].isDisplayed()
.then(function(visible){
return !visible;
});
}
})
});
}
var wait = require('./selenium-wait');
function assertSomething(){
return wait.elementTextMatches('.myClass', /foobar/);
}
// other available APIs
wait.elementIsNotVisible('.myClass');
wait.seconds(10); // wait 10 seconds (useful for debugging)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment