使用phantomjs在URL上进行身份验证

时间:2017-02-01 11:26:25

标签: java selenium authentication phantomjs

我正在使用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必须只查找第一个@并假设之后的所有内容都是域。

1 个答案:

答案 0 :(得分:2)

答案:::

我自己已经找到了解决方案,但是我会将此留给其他遇到此问题的人。

在ChromeDrive中通过URL传递USERNAME:PASSWORD @ DOMAIN但在PhantomJS中没有正常工作,我尝试了不同的方法在PhantomJS上设置--proxy-auth所需的功能但是它没有超越身份验证屏幕。

解决方案很简单,当我给它输入带有用户名和密码的URL时,我只需编码@符号,这是我的密码的一部分,所以我将@更改为%40,它在ChromeDriver和PhantomJS中工作正常。

我猜chromeDriver解析URL以查看域的开始位置,但GhostDriver必须只查找第一个@并假设之后的所有内容都是域。