Adapter for Jasmine-to-WebDriverJS. Used by Protractor.
Important: There are two active branches of jasminewd.
- master is an adapter for Jasmine 1.3, and uses the package minijasminenode. It is published to npm as
jasminewd
. - jasminewd2 is an adapter for Jasmine 2.x, and uses the package jasmine. It is published to npm as
jasminewd2
.
-
Automatically makes tests asynchronously wait until the WebDriverJS control flow is empty.
-
If a
done
function is passed to the test, waits for both the control flow and until done is called. -
Enhances
expect
so that it automatically unwraps promises before performing the assertion.
npm install jasminewd
Assumes selenium-webdriver as a peer dependency.
// In your setup.
var minijn = require('minijasminenode');
require('jasminewd');
global.driver = new webdriver.Builder().
usingServer('http://localhost:4444/wd/hub').
withCapabilities({browserName: 'chrome'}).
build();
minijn.executeSpecs(/* ... */);
// In your tests
describe('tests with webdriver', function() {
it('will wait until webdriver is done', function() {
// This will be an asynchronous test. It will finish once webdriver has
// loaded the page, found the element, and gotten its text.
driver.get('http://www.example.com');
var myElement = driver.findElement(webdriver.By.id('hello'));
// Here, expect understands that myElement.getText() is a promise,
// and resolves it before asserting.
expect(myElement.getText()).toEqual('hello world');
});
})