How to handle basic authentication with protractor?(如何使用量角器处理基本身份验证?)
问题描述
我正在尝试量角器在非角度应用程序中编写一些测试.我必须通过谷歌浏览器中的基本身份验证登录页面,但我不知道如何.
I'm trying protractor to write a few tests in a non angular application. I have to login in a page trough basic authentication in google chrome, but i have no idea how.
我已经尝试过 baseUrl: 'https://username:password@url'
和 capabilities: {浏览器名称":铬",铬选项":{参数:['--login-user=foo', '--login-password=bar']}}
但如果这些对我有用,则没有.有谁知道该怎么做?我在这方面遇到了一些困难.
But none if these worked for me. Anyone knows how to do it? I'm having some hard time on it.
推荐答案
简短的回答是在 chrome 上没有简单的方法,因为它们不支持修改请求标头 - 请参阅 https://code.google.com/p/selenium/issues/detail?id=141 (标题表示响应标题,但如果您阅读它,它适用于所有标题).
The short answer is there is no easy way of doing it on chrome because they do not support modifying request headers -- see https://code.google.com/p/selenium/issues/detail?id=141 (title says response headers, but if you read it, it's for all headers).
话虽如此,有办法做到这一点,尽管很困难.
That being said, there are ways to do it, albeit difficult.
1) 找到一个允许您修改标题的 chrome 扩展/插件.一个简单的搜索就可以找到很多:https://chrome.google.com/webstore/search/modify%20header.您需要将插件添加到 webdriver:请参阅 量角器测试下是否可以给chromedriver添加插件?.
1) Find a chrome extension/plugin that allows you to modify header. A simple search bring up many of them: https://chrome.google.com/webstore/search/modify%20header. You'll need to add the plugin to webdriver: see Is it possible to add a plugin to chromedriver under a protractor test?.
2) 你可以使用 browsermob-proxy (https://github.com/lightbody/browsermob-代理);这样,您可以通过代理路由您的流量,这将为您添加标头.来自文档:
2) You can use browsermob-proxy (https://github.com/lightbody/browsermob-proxy); this way you route your traffic through the proxy, which would add the headers for you. From the docs:
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"}
有一个节点项目可以帮助你,https://github.com/zzo/browsermob-节点,但您仍然需要自己设置代理服务器.
There's a node project that may help you, https://github.com/zzo/browsermob-node, but you would still need to set up your proxy server yourself.
chrome 的两种方法都很复杂,但都能得到你想要的.(或者你可以坚持使用 Firefox 并按照罗伯特的回答)
Both ways for chrome are complex, but would get you what you want. (or you can stick with firefox and follow Robert's answer)
这篇关于如何使用量角器处理基本身份验证?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用量角器处理基本身份验证?
基础教程推荐
- 在for循环中使用setTimeout 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 动态更新多个选择框 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01