We are using Protractor to test our Angular web. Our E2E tests are working fine with PC version. Now I want to setup the tests to run on Android with Selendroid. I followed the setup guideline from https://github.com/angular/protractor/blob/master/docs/mobile-setup.md to run Android emulator and here is my protractor configuration:
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
allScriptsTimeout: 120000,
specs: [
'login.test.js'
],
capabilities: {
'browserName': 'android',
emulator: true
},
baseUrl: 'my web site',
framework: 'jasmine2',
jasmineNodeOpts: {
defaultTimeoutInterval: 300000,
},
onPrepare: function () {
var wd = require('wd'),
protractor = require('protractor'),
wdBridge = require('wd-bridge')(protractor, wd);
wdBridge.initFromProtractor(exports.config);
wdBrowser.context('WEBVIEW');
//helper functions
global.helpers = require('./helper.js');
//prepare spec host map
global.helpers.prepareSpecHostMap();
//extend protractor
global.helpers.extendProtractor();
}
};
Here is my test suite:
describe('Test login and logout (min-suite)', function () {
beforeAll(function () {
global.helpers.setHostParameters('login');
});
it('test login and logout success', function () {
global.helpers.login(global.host.testUser, global.host.testPassword);
expect(browser.getLocationAbsUrl()).toMatch('/home');
element(by.id('userButtonGroup')).click();
element(by.id('logoutButton')).click();
expect(browser.getLocationAbsUrl()).toMatch('/login');
});
});
When I run the tests, I'm facing a similar issue. I have quickly tested with a simple test like this:
it('test login and logout success', function () {
browser.driver.get('my web site');
});
It works fine. Can someone please guide me to what I missed to make the tests work?