我使用protractor conf.js --params.login.username=John --params.login.password=Doe
运行的角度2的量角器硒测试。测试应尝试登录到我的后端,并在访问被拒绝的情况下失败。
这是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
}
}
webdriver以webdriver-manager start
启动。该应用程序加载正常,测试填写Auth0弹出窗口,如下所示。然后单击提交按钮。但是,这会导致显示以下错误消息而不是登录发生。如果我理解正确,Auth0无法访问auth服务器(手动登录时不是问题)。
auth0 lock的版本是10.0。
通过browser.pause()
我可以验证是否可以访问其他非本地主机地址,例如stackoverflow.com。
知道这可能来自哪里以及如何解决它?
更新
在开发者控制台中,将显示以下消息。
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.
答案 0 :(得分:1)
问题是,本地网址http://127.0.0.1:4200
未列在允许来源(CORS)下的 auth0信息中心中,而是仅用于我手动测试的http://localhost:4200
。
通过将http://127.0.0.1:4200
添加到允许的来源(CORS)并将适当的回调网址添加到允许的回拨网址,解决了该问题。