Входное всплывающее окно с использованием selenium webdriver?

всплывающее окно происходит, только если я использую браузер Fire Fox в противном случае, есть ли способ исправить эту проблему? Я должен вводить userid/password каждый раз, когда я использую FF в качестве моего браузера.

В настоящее время я вхожу каждый раз, когда запускаю свой тест, который очень болезнен, но смотря, чтобы сделать его более автоматическим....

Я просмотрел и нашел две ссылки здесь и здесь, но безрезультатно

enter image description here

Ответ 1

После чтения часов я наконец нашел решение, которое работает очень хорошо, и я надеюсь, что это тоже поможет другим. - Наслаждайтесь!

Сначала выполните следующие действия:

1) Open the FireFox browser
2) Type the following `about:config`
3) Look for `network.http.phishy-userpass-length` if you don't find then create a new Integer key 
Create a new Integer key (right-click->New->Integer): `network.http.phishy-userpass-length` with value `255`

Во-вторых: вам нужно создать драйвер Firefox со следующим:

FirefoxProfile profile = new FirefoxProfile();
profile.SetPreference("network.http.phishy-userpass-length", 255);
profile.SetPreference("network.automatic-ntlm-auth.trusted-uris", "YOUR HOST ADDRESS HERE");
_driver = new FirefoxDriver(profile);

сообщите мне, если у вас есть какие-либо вопросы.

Ответ 2

http://username:[email protected] 

Это сработало для меня (xyz.com - название сайта)

Ответ 3

Если это учетная запись пользователя и пароль для Windows, вам нужно включить интегрированный вход в Windows, установив

network.negotiate-auth.delegation-uris: MyIISServer.domain.com
network.automatic-ntlm-auth.trusted-uris: MyIISServer.domain.com
network.automatic-ntlm-auth.allow-proxies: True
network.negotiate-auth.allow-proxies: True

в профиле Firefox, который запускается WebDriver. После создания и сохранения профиля (запустите "Firefox -P", когда другие экземпляры не запускают выбор профиля), вы можете сделать это в коде:

File profileDir = new File("C:/wherever/SeleniumFirefoxProfile");
FirefoxProfile profile = new FirefoxProfile(profileDir);
profile.setEnableNativeEvents(true);
driver = new FirefoxDriver(profile);

Ответ 4

Мне приходилось обращаться с ними несколько раз, но мой подход использует script вне Selenium. Вы работаете в Windows?

В основном вы делаете следующее:

1) Перед загрузкой страницы, щелчком по URL-адресу и т.д., который вызывает это диалоговое окно:

-- Launch an asynchronous script to handle the login

2) Затем загрузите страницу, нажмите ссылку и т.д.

-- Selenium will block until your asynch script completes

Асинхронный script:

-- Sleep for a few seconds
-- Activate the dialog
-- Send the username
-- Send a TAB
-- Send the password
-- Send a TAB
-- Send the Enter Key

Если вы работаете над окнами, я могу опубликовать образцы сценариев, чтобы справиться с этим. Я сделал это с Java и С#, но я бы предположил, что в основном одно и то же будет работать независимо от того, как вы пишете свои тесты (если только вы не используете плагин FF, и в этом случае это не сработает).

Сообщите мне, если вы хотите получить более подробную информацию.

Ответ 5

Вы можете использовать FF-плагин "autoauth". Загрузите этот плагин и создайте экземпляр Firefox следующим образом:

FirefoxProfile firefoxProfile = new ProfilesIni().getProfile("default");
File pluginAutoAuth = new File("D:\\autoauth-2.1-fx+fn.xpi");
firefoxProfile.addExtension(pluginAutoAuth);
driver = new FirefoxDriver(firefoxProfile);

Я использовал "autoauth-2.1-fx + fn.xpi"