Вход на сайт через всплывающее окно с использованием драйвера SeleniumWeb - PullRequest
0 голосов
/ 15 мая 2018

Итак, я пытаюсь войти на сайт, на котором у него первый вход, через всплывающее окно, и как только вы его посещаете, появляется всплывающее окно, требующее ввода имени пользователя и пароля. Теперь у меня есть очень грубое представление о том, как бы я это сделал, если бы это не было всплывающее окно, но, поскольку я не знаю, как увидеть HTML-код окна, я не знаю, что вставить в driver.findElement (By.id ("")).

Извините, если это слишком расплывчато.

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Так что это не всплывающее окно, это базовая аутентификация.

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

В драйвере Chrome и драйвере Firefox вы можете вставить свое имя пользователя и пароль в URL.

Пример: если у вас есть такой URL: http://the -internet.herokuapp.com /basic_auth

Если имя пользователя и пароль совпадают с 'admin'

Просто измените свой URL-адрес на:

http://admin:admin@the -internet.herokuapp.com /basic_auth

Пример кода Java:

String username = "admin";
String password = "admin";
String url= "http://" + username + ":" + password + "@the-internet.herokuapp.com/basic_auth";
driver.get(url);

Это автоматически обрабатывает базовую аутентификацию в драйверах Chrome и Firefox.

Подробнее здесь: Selenium - BasicАутентификация через URL

0 голосов
/ 15 мая 2018

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

Пример:

WebDriver driver = ...    

String parentWindowHandle = driver.getWindowHandle();

String popupWindowHandle = null;
Iterator<String> iterator = driver.getWindowHandles().iterator();
while (iterator.hasNext()) {
    popupWindowHandle = iterator.next();
}

driver.switchTo().window(popupWindowHandle);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...