Search code examples
google-chromeseleniumangularprotractorauth0

Selenium Auth0 can't connect to server


I have a protractor selenium test for an angular2 that I run with protractor conf.js --params.login.username=John --params.login.password=Doe. The test shall try to log in to my backend and fail with access denied.

This is the conf.js:

exports.config = {
  framework: 'jasmine2',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  capabilities: {
    'browserName': 'chrome'
  },
  baseUrl:'http://127.0.0.1:4200',
  specs: ['mytest.spec.js'],
  useAllAngular2AppRoots: true,

  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000
  }
}

The webdriver was started with webdriver-manager start. The app loads fine and the test fills out the Auth0 popup as shown below. It then clicks the submit button. However, this leads to the error message below being shown instead of the login happening. If I understand correctly, Auth0 can't reach the auth server (which is not the issue when logging in manually).

The version of auth0 lock is 10.0.

Auth0 can't reach its server

Through browser.pause() I could verify that other non-localhost addresses like stackoverflow.com are accessible.

Any idea where this might come from and how to solve it?

Update:

In the developer console the following message is displayed.

XMLHttpRequest cannot load https://MYDOMAIN.eu.auth0.com/usernamepassword/login. 
Response to preflight request doesn't pass access control check: 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://127.0.0.1:4200' is therefore not allowed access.

Solution

  • The problem was, that the local url http://127.0.0.1:4200 was not listed in the auth0 dashboard under Allowed Origins (CORS), only http://localhost:4200 which I used for testing manually.

    The issue was resolved by adding http://127.0.0.1:4200 to Allowed Origins (CORS) and adding the appropriate callback URLs to Allowed Callback URLs.