Reputation: 53
I am new to Protractor. I am using Protractor to test both Angular and Non-Angular applications. My testing sequence would be
I tried the below scripts but it throws me an error.
Config.js
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
capabilities: {
'browserName': 'firefox'
},
specs: ['spec1.js'],
jasmineNodeOpts: {
showColors: true
}
};
Spec1.js
describe('angularjs homepage', function() {
it('Availity', function() {
browser.driver.get('https://qa-apps.availity.com/availity/web/public.elegant.login');
browser.driver.findElement(by.name('userId')).sendKeys('xxxx');
browser.driver.findElement(by.name('password')).sendKeys('yyyy');
browser.driver.findElement(by.id('loginFormSubmit')).click();
browser.driver.sleep(1);
browser.waitForAngular();
element(by.className('navbar-brand-availity')).click();
});
});
Any help on above issue is highly appreciated.
Upvotes: 2
Views: 2480
Reputation: 10147
you can do login in your protractor configuration file (config.js), with the onPrepare
function e.g.
exports.config = {
onPrepare: function () {
browser.baseUrl = browser.params.baseUrl;
browser.driver.get(browser.baseUrl + 'Account/Login');
browser.driver.findElement(by.id('UserName')).sendKeys('username');
browser.driver.findElement(by.id('Password')).sendKeys('PASSWORD');
browser.driver.findElement(by.id('Login')).sendKeys(protractor.Key.ENTER);
return browser.driver.wait(function () {
return browser.driver.getCurrentUrl().then(function (url) {
return /home/.test(url);
});
}, 90000);
},
};
Upvotes: 0
Reputation: 473873
You have to have the sync off when you are working with the non-angular part and then, turn the sync on again after you are logged in. Something like:
describe('angularjs homepage', function() {
beforeEach(function () {
browser.ignoreSynchronization = true;
browser.driver.get('https://qa-apps.availity.com/availity/web/public.elegant.login');
browser.driver.findElement(by.name('userId')).sendKeys('xxxx');
browser.driver.findElement(by.name('password')).sendKeys('yyyy');
browser.driver.findElement(by.id('loginFormSubmit')).click();
browser.driver.sleep(1);
browser.ignoreSynchronization = false;
browser.waitForAngular();
});
it('Availity', function() {
element(by.className('navbar-brand-availity')).click();
});
});
Upvotes: 2