2017-02-01 8 views
1

Я пишу несколько автоматических тестов с использованием Selenium и Java.аутентифицировать URL-адрес с phantomjs

страница Я пытаюсь получить доступ к аутентификации потребностей, для chromeDriver я просто передать имя пользователя и пароль на URL следующим образом:

http://USERNAME:[email protected]

Это прекрасно работает, но с PhantomJS я не могу получить страница для проверки подлинности, так что я просто в конечном итоге на о: пустой

Я попытался добавить это к желаемым capabilties из экземпляра драйвера 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, проходящем в USERNAME: PASSWORD @ DOMAIN по URL-адресу, но не в PhantomJS, я пробовал по-другому установить параметр -proxy-auth на желаемые возможности PhantomJS, но он не выходил за рамки экран проверки подлинности.

Решение было простым, когда я даю ему URL с именем пользователя и паролем, который мне просто нужно было закодировать символ @, который был частью моего пароля, поэтому я изменил @ на% 40, и он отлично работает в ChromeDriver и PhantomJS.

Я предполагаю, что chromeDriver анализирует URL-адрес, чтобы увидеть, где начинается домен, но GhostDriver должен просто искать первый @ и считать все после этого доменом.

+0

Вы должны отправить ответ в качестве ответа и принять его - таким образом вы покажете, что вопрос решен, и он будет полезен людям позже. – Vaviloff

+0

Спасибо @Vaviloff Я добавил ответ, но я не могу принять его до завтра. – MisterMan

ответ

2

ОТВЕТ :::

Я узнал Решение сам, но я оставлю это здесь для кого-либо еще, что работает в эту проблему.

Он работал отлично в ChromeDrive, проходящем в USERNAME: PASSWORD @ DOMAIN по URL-адресу, но не в PhantomJS, я пробовал по-другому установить параметр -proxy-auth на желаемые возможности PhantomJS, но он не выходил за рамки экран проверки подлинности.

Решение было простым, когда я даю ему URL с именем пользователя и паролем, который мне просто нужно было закодировать символ @, который был частью моего пароля, поэтому я изменил @ на% 40, и он отлично работает в ChromeDriver и PhantomJS.

Я предполагаю, что chromeDriver анализирует URL-адрес, чтобы увидеть, где начинается домен, но GhostDriver должен просто искать первый @ и считать все после этого доменом.