and*_*epm 20 javascript jasmine protractor
我正在尝试量角器在非角度应用程序中编写一些测试.我必须通过谷歌浏览器中的基本身份验证登录页面,但我不知道如何.

我已经尝试过baseUrl: 'https://username:password@url'和capabilities: {
'browserName': 'chrome',
'chromeOptions' : {
args: ['--login-user=foo', '--login-password=bar']
}
}
但如果这些对我有用,那就没有.谁知道怎么做?我在这方面遇到了一些困难.
简短的回答是没有简单的方法在Chrome上执行此操作,因为它们不支持修改请求标头 - 请参阅https://code.google.com/p/selenium/issues/detail?id=141(标题说回复标题,但如果您阅读它,它适用于所有标题).
话虽这么说,有办法做到这一点,虽然很难.
1)找到允许您修改标题的chrome扩展/插件.一个简单的搜索引出了很多:https://chrome.google.com/webstore/search/modify%20header.您需要将该插件添加到webdriver:请参阅在量角器测试下是否可以向chromedriver添加插件?.
2)您可以使用browsermob-proxy(https://github.com/lightbody/browsermob-proxy); 这样您就可以通过代理路由流量,这会为您添加标头.来自文档:
POST /proxy/[port]/auth/basic/[domain] - Sets automatic basic authentication for the specified domain
Payload data should be json encoded username and password name/value pairs (ex: {"username": "myUsername", "password": "myPassword"}
Run Code Online (Sandbox Code Playgroud)
有一个节点项目可以帮助你,https://github.com/zzo/browsermob-node,但你仍然需要自己设置你的代理服务器.
Chrome的两种方式都很复杂,但可以满足您的需求.(或者你可以坚持使用firefox并按照Robert的回答)
从 59 版开始,Chrome不再支持带有嵌入式凭据的 URL。
为了解决这个问题,我编写了authenticator-browser-extensionNode 模块,如果您使用 Protractor、WebDriver.io 或类似的测试运行程序,它可能会很有用。
要使用模块从 npm 安装它:
npm install --save-dev authenticator-browser-extension
Run Code Online (Sandbox Code Playgroud)
并导入protractor.conf.js:
npm install --save-dev authenticator-browser-extension
Run Code Online (Sandbox Code Playgroud)
专业提示:记住不要在代码中提交凭据,请考虑使用env 变量。
希望这可以帮助!
简