我有一个测试,应该在登录网站后检查网站的标题。要执行登录,我在配置文件中使用onPrepare语句。 当网站登录到我的规范中的测试应该运行,但我一直在
Failed: Timed out waiting for Protractor to synchronize with the page after 11 seconds.
如果我在测试规范中添加了beforeEach语句,则测试用户未登录,因此我无法测试所有已登录的'我需要运行的具体测试。
这是我的配置文件:
'use strict';
var env = require('./enviroment');
exports.config = {
framework: 'jasmine',
seleniumAddress: 'http://127.0.0.1:4444/wd/hub',
directConnect: true,
specs: [
'photostream/*.spec.js'
],
capabilities: {
name: 'Chrome',
browserName: 'chrome'
},
baseUrl: env.baseUrl,
jasmineNodeOpts: {
showColors: true,
includeStackTrace: true
},
onPrepare: function(){
browser.driver.get(env.baseUrl);
// find the sign in button
browser.driver.findElement(by.id('homepage_sign_in_btn')).click();
browser.sleep(1000);
// fire click event of the sign in button
// check that the Sign In to Lifecake panel is opened
// enter a email address
browser.driver.findElement(by.id('sign-in-menu-email')).sendKeys(env.testUserAcc.email);
// enter the password
browser.driver.findElement(by.id('sign-in-menu-password')).sendKeys(env.testUserAcc.password);
browser.sleep(5000);
// click the sign in button
browser.driver.findElement(by.id('home_menu_sign_in_btn')).click();
return browser.driver.wait(function(){
return browser.driver.getCurrentUrl().then(function(url){
return url + '/index.html#/photos';
})
}, 5000)
}
}
这是我的测试规范文件:
'use strict';
var PhotostreamHelper = require('./photostream.page.js');
describe('Tests for the Photostream - ',function(){
it('The title of the site should be Lifecake', function () {
expect(browser.getTitle()).toEqual('Lifecake');
browser.sleep(2000);
});
});