Angular 2 - Protractor
Angular2 Protractor - Installation
Section titled “Angular2 Protractor - Installation”run the follows commands at cmd
npm install -g protractorwebdriver-manager updatewebdriver-manager start
**create protractor.conf.js file in the main app root.
very important to decleare useAllAngular2AppRoots: true
const config = { baseUrl: 'http://localhost:3000/',
specs: [ './dev/**/*.e2e-spec.js' ],
exclude: [], framework: 'jasmine',
jasmineNodeOpts: { showColors: true, isVerbose: false, includeStackTrace: false },
directConnect: true,
capabilities: { browserName: 'chrome', shardTestFiles: false, chromeOptions: { 'args': ['--disable-web-security ','--no-sandbox', 'disable-extensions', 'start-maximized', 'enable-crash-reporter-for-testing'] } },
onPrepare: function() { const SpecReporter = require('jasmine-spec-reporter'); // add jasmine spec reporter jasmine.getEnv().addReporter(new SpecReporter({ displayStacktrace: true }));
browser.ignoreSynchronization = false; }, useAllAngular2AppRoots: true};
if (process.env.TRAVIS) { config.capabilities = { browserName: 'firefox' };}
exports.config = config;create basic test at dev directory.
describe('basic test', () => {
beforeEach(() => { browser.get('http://google.com'); });
it('testing basic test', () => { browser.sleep(2000).then(function(){ browser.getCurrentUrl().then(function(actualUrl){ expect(actualUrl.indexOf('google') !== -1).toBeTruthy(); }); }); });});run in cmd
protractor conf.jsTesting Navbar routing with Protractor
Section titled “Testing Navbar routing with Protractor”First lets create basic navbar.html with 3 options. (Home, List , Create)
<nav class="navbar navbar-default" role="navigation"><ul class="nav navbar-nav"> <li> <a id="home-navbar" routerLink="/home">Home</a> </li> <li> <a id="list-navbar" routerLink="/create" >List</a> </li> <li> <a id="create-navbar" routerLink="/create">Create</a> </li></ul>second lets create navbar.e2e-spec.ts
describe('Navbar', () => {
beforeEach(() => { browser.get('home'); // before each test navigate to home page. });
it('testing Navbar', () => { browser.sleep(2000).then(function(){ checkNavbarTexts(); navigateToListPage(); }); });
function checkNavbarTexts(){ element(by.id('home-navbar')).getText().then(function(text){ // Promise expect(text).toEqual('Home'); });
element(by.id('list-navbar')).getText().then(function(text){ // Promise expect(text).toEqual('List'); });
element(by.id('create-navbar')).getText().then(function(text){ // Promise expect(text).toEqual('Create'); }); }
function navigateToListPage(){ element(by.id('list-home')).click().then(function(){ // first find list-home a tag and than click browser.sleep(2000).then(function(){ browser.getCurrentUrl().then(function(actualUrl){ // promise expect(actualUrl.indexOf('list') !== -1).toBeTruthy(); // check the current url is list }); });
}); }});