好吧,我正在使用chrome。 当我运行量角器时,页面开始加载并且永远不会加载,直到我手动刷新页面然后一切正常流动。 我的页面使用Angular2,使用MEAN堆栈构建。
这是我的配置文件:
// @datatype_void
require('ts-node/register');
exports.config = {
baseUrl: 'https://localhost:3000',
// use `npm run e2e`
specs: [
'../test/*.e2e.*.js'
],
suites: {
dashboard: '../test/Dashboard.e2e.testcase.js'
},
exclude: [],
framework: 'jasmine2',
allScriptsTimeout: 40000,
jasmineNodeOpts: {
showTiming: true,
showColors: true,
isVerbose: false,
includeStackTrace: false,
defaultTimeoutInterval: 40000
},
directConnect: true,
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'args': ['show-fps-counter=true']
}
},
onPrepare: function() {
browser.ignoreSynchronization = true;
},
/**
* Angular 2 configuration
*
* useAllAngular2AppRoots: tells Protractor to wait for any angular2 apps on the page instead of just the one matching
* `rootEl`
*
*/
useAllAngular2AppRoots: true
};
这是第一个参加测试的人:
describe('This is Dashboard.', () => {
email = 'alexis.gonzalez@agilezip.mx';
pass = 'laslos157';
browser.get('/');
browser.wait(protractor.ExpectedConditions.visibilityOf($('.abcRioButton.abcRioButtonBlue')), 10000);
element(by.css('.abcRioButton.abcRioButtonBlue')).click();
browser.getAllWindowHandles().then(function (handles) {
browser.switchTo().window(handles[1]).then(function () {
enterkeys(element(by.css('#Email')), email);
element(by.css('#next')).click();
browser.wait(protractor.ExpectedConditions.visibilityOf($('#Passwd')), 5000);
enterkeys(element(by.css('#Passwd')), pass);
element(by.css('#signIn')).click();
});
});
browser.getAllWindowHandles().then(function (handles) {
browser.switchTo().window(handles[0]);
});
browser.wait(protractor.ExpectedConditions.visibilityOf($$('.al-sidebar-list-link').get(0)), 10000);
答案 0 :(得分:0)
嗯,我可以"修复"添加以下行:
browser.waitForAngular();
browser.navigate().refresh();
但我不明白为什么我要刷新页面。 :(
答案 1 :(得分:0)
据我说,您不必使用browser.waitForAngular(),因为量角器会在每次执行Web Driver动作之前自动应用此命令。只需使用browser.navigate.refresh()也应该可以。