我正在使用Selenium和Java编写一些自动化测试。
我尝试访问的页面需要身份验证,对于chromeDriver我只是在URL上传递用户名和密码,如下所示:
http://USERNAME:PASSWORD@www.mydomain.com
这样可以正常使用,但是使用PhantomJS我无法通过身份验证页面进行身份验证,因此我最终了解:空白
我已尝试将其添加到phantomJS驱动程序实例所需的功能中,但它仍然无效:
desiredCapabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[] {"--web-security=false", "--ignore-ssl-errors=true", "--ssl-protocol=any", "--proxy-auth=USERNAME:PASSWORD"});
有人能告诉我如何使用PhantomJS吗?
如果重要,我的密码确实包含特殊字符(@)
答案::: 我自己已经找到了解决方案,但是我会将此留给其他遇到此问题的人。
在ChromeDrive中通过URL上的USERNAME:PASSWORD @ DOMAIN但在PhantomJS中没有正常工作,我尝试了不同的方法在PhantomJS上设置--proxy-auth所需的功能,但它并没有超越验证屏幕。
解决方案很简单,当我给它输入带有用户名和密码的URL时,我只需编码@符号就是我的密码的一部分,所以我将@更改为%40,它在ChromeDriver和PhantomJS中运行正常。
我猜chromeDriver解析URL以查看域的开始位置,但GhostDriver必须只查找第一个@并假设之后的所有内容都是域。
答案 0 :(得分:2)
答案:::
我自己已经找到了解决方案,但是我会将此留给其他遇到此问题的人。
在ChromeDrive中通过URL传递USERNAME:PASSWORD @ DOMAIN但在PhantomJS中没有正常工作,我尝试了不同的方法在PhantomJS上设置--proxy-auth所需的功能但是它没有超越身份验证屏幕。
解决方案很简单,当我给它输入带有用户名和密码的URL时,我只需编码@符号,这是我的密码的一部分,所以我将@更改为%40,它在ChromeDriver和PhantomJS中工作正常。
我猜chromeDriver解析URL以查看域的开始位置,但GhostDriver必须只查找第一个@并假设之后的所有内容都是域。