Maybe your DOM is not ready yet when Webdriver tries to locate element.
Add this code in a util.js
file :
util.js
'use strict';
/**
* Navigate to an url and wait some seconds
* @param {string} path The path
* @param {seconds} [seconds] The number of seconds to wait for
* @returns {Promise}
* @see waitSomeSeconds
*/
function navigateAndWait(path, seconds) {
return browser.get(path)
.then(function () {
return waitSomeSeconds(seconds);
});
}
/**
* Wait some seconds (default is 3)
* @param {int} [seconds]
* @returns {Promise}
*/
function waitSomeSeconds(seconds) {
return browser.sleep((seconds || 3) * 1000);
}
module.exports = {
navigateAndWait: navigateAndWait,
waitSomeSeconds: waitSomeSeconds
}
homepage.spec.js
'use strict';
var util = require('./util');
describe('Homepage test suite', function () {
it('should navigate to homepage', function() {
return util.navigateAndWait('/homepage');
});
it('should display title with correct data', function() {
expect(element(by.css('h1')).getText()).toBe('Welcome');
});
});
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…