2017-01-17 3 views
0

Мы пытаемся аутентифицировать наш сайт https://staging.rockettes.com. Он запрашивает имя пользователя и пароль, которые мы должны предоставить через наш код selenium java. Вы можете помочь? Спасибо, RachitHandle Login/Password Popup Selenium JAVA

+1

Я думаю, вам нужно задать конкретные вопросы. – alayor

+1

Пожалуйста, рассмотрите вопрос о том, что вы опубликовали в этом вопросе.Как и в настоящее время, его форматирование и масштабы затрудняют нам помощь; здесь [большой ресурс] (http://stackoverflow.com/help/mcve), чтобы вы начали с этого –

+0

Возможный дубликат [Как обрабатывать всплывающее окно аутентификации с помощью Selenium WebDriver с помощью Java] (http://stackoverflow.com/q/24304752/1072229) –

ответ

1

Вам нужно будет создать testURL перед вызовом команды driver.get.

Так при условии, чтоимя пользователя = админ и пас = проходят

String testURL = "https://" + "admin" + ":" + "pass" + "@" + "staging.rockettes.com/"; 

Теперь вы можете смело назвать свой driver.get следующим образом:

driver.get(testURL); 

Успехов !


Обновленный ответ после комментария Op в:

Хорошо, поэтому для того, чтобы принять предупреждение, вы можете использовать:

WebDriverWait waitTime = new WebDriverWait(driver, 5); 

Boolean isAlertPresent = wait.until(ExpectedConditions.alertIsPresent()); 

if(isAlertPresent==true){ 
Alert alert = driver.switchTo().alert(); 
alertText = alert.getText(); 
alert.accept(); 
} 
else{ 
System.out.println("No alert was present!") 
} 
+0

Спасибо, я сделал это, но он выводит меня на другой экран с некоторым сообщением и просит меня нажать «Да/нет». Мой запрос был встроен в тот факт, что - могу ли я найти элементы всплывающего окна и отправить логин/пароль по ключам, а затем нажать кнопку «Да/Нет» и т. Д. –

+0

Хорошо, Рачите, я обновил свой ответ, посмотрю, помогает ли это upvote, если он делает или комментирует здесь, если это не так. Удачи в решении этого! –

+0

На самом деле это также время ожидания. Я пробовал до сих пор: 1. Механизм оповещений 2. Прохождение входа/прохождения по самому URL 3: класс роботов. Ситуация здесь невелика: нам нужно открыть этот URL-адрес в SauceConnect (Saucelabs.com) для запуска нашего тестового скрипта. Однако SauceConnect образует туннель, поэтому на самом деле он не использует ни один из выше трех механизмов. –

0

Я думаю, что, всплывающий на удар URL-адрес ur не является оповещением на веб-сайте, а является предупреждением в окне, поэтому вы можете обрабатывать его с помощью AutoIT, или вы можете сделать это, используя класс Robot следующим образом (хотя и не рекомендуется):

String userName = "ADMIN"; 
    StringSelection stringSelection = new StringSelection(userName); 
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
    clipboard.setContents(stringSelection, stringSelection); 

    Robot robot = new Robot(); 
    robot.keyPress(KeyEvent.VK_CONTROL); 
    robot.keyPress(KeyEvent.VK_V); 
    robot.keyRelease(KeyEvent.VK_V); 
    robot.keyRelease(KeyEvent.VK_CONTROL); 
    robot.keyPress(KeyEvent.VK_TAB); 
    robot.keyRelease(KeyEvent.VK_TAB); 

    String password = "PASS"; 
    StringSelection stringSelection1 = new StringSelection(password); 
    Clipboard clipboard1 = Toolkit.getDefaultToolkit().getSystemClipboard(); 
    clipboard1.setContents(stringSelection1, stringSelection1); 


    robot.keyPress(KeyEvent.VK_CONTROL); 
    robot.keyPress(KeyEvent.VK_V); 
    robot.keyRelease(KeyEvent.VK_V); 
    robot.keyRelease(KeyEvent.VK_CONTROL); 
    robot.keyPress(KeyEvent.VK_TAB); 
    robot.keyRelease(KeyEvent.VK_TAB); 

    robot.keyPress(KeyEvent.VK_ENTER); 
    robot.keyRelease(KeyEvent.VK_ENTER); 
+0

жаль, что он не работает, поскольку мы используем туннель и выполняем сценарий на удаленной системе, поэтому он бросает исключение, поскольку буфер обмена этой системы может быть недоступен. –

+0

попробуйте использовать AutoIT, как последнее средство. – kushal

0

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

driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); 
0

Вы можете использоваться любыми способами ниже:

1. В проходе с URL:

String url= "https://" + "username" + ":" + "password" + "@" + "staging.rockettes.com"; 
driver.get(url); 

2. Предупреждение

Alert alert = wait.until(ExpectedConditions.alertIsPresent());  
alert.authenticateUsing(new UserAndPassword("username", "password")); 

3. AutoIT

AutoIt скрипт для обработки окна аутентификации:

WinWaitActive("Windows Security") 
Send("username") 
Send("{TAB}") 
Send("password") 
Send("{ENTER}") 

Сохранить этот файл как «auth.au3" правой кнопкой мыши на файле и выбрать«Compile Script (x86) ", и он сделает« auth.exe » Теперь напишите образец кода Java, чтобы использовать его:

driver.get("https://staging.rockettes.com/"); 
Runtime.getRuntime().exec("E:\\AutoIT\\auth.exe"); 

4. Sikuli

Screen screen = new Screen(); 
driver = new FirefoxDriver(); 
driver.get("https://staging.rockettes.com/"); 
screen.type("C:\\username.png"),"username"); 
screen.type("C:\\password.png","password"); 
screen.click("C:\\okButton.png");