Как обработать всплывающее окно аутентификации в браузере Safari с помощью Selenium? - PullRequest
0 голосов
/ 28 апреля 2020

enter image description here

Я получаю всплывающее окно аутентификации в браузере Safari при попытке подключиться к одному из внутренних веб-сайтов https://staging.toyota.com, и я написал приведенная ниже пользовательская функция, использующая класс Robot для ввода учетных данных аутентификации

private static void loginTier1(String value) {
        System.out.println("I was called!!!");
        try {
            Robot r = new Robot();
            r.delay(6000);
            System.out.println("Inside loginTier1");
            for(char c : value.toCharArray()){
                if(c=='_') {
                    r.keyPress(KeyEvent.VK_SHIFT);
                    r.keyPress(KeyEvent.VK_MINUS);
                    r.keyRelease(KeyEvent.VK_MINUS);
                    r.keyRelease(KeyEvent.VK_SHIFT);
                }else if(c=='%') {
                    r.keyPress(KeyEvent.VK_SHIFT);
                    r.keyPress(KeyEvent.VK_5);
                    r.keyRelease(KeyEvent.VK_5);
                    r.keyRelease(KeyEvent.VK_SHIFT);
                }else if(c=='$') {
                    r.keyPress(KeyEvent.VK_SHIFT);
                    r.keyPress(KeyEvent.VK_4);
                    r.keyRelease(KeyEvent.VK_4);
                    r.keyRelease(KeyEvent.VK_SHIFT);
                }else if(c=='!') {
                    r.keyPress(KeyEvent.VK_SHIFT);
                    r.keyPress(KeyEvent.VK_1);
                    r.keyRelease(KeyEvent.VK_1);
                    r.keyRelease(KeyEvent.VK_SHIFT);
                }
                else {
                    if(Character.isAlphabetic(c) && Character.isUpperCase(c))
                        r.keyPress(KeyEvent.VK_SHIFT);
                    r.keyPress(KeyEvent.getExtendedKeyCodeForChar(c));
                    r.keyRelease(KeyEvent.getExtendedKeyCodeForChar(c));
                    if(Character.isAlphabetic(c) && Character.isUpperCase(c))
                        r.keyRelease(KeyEvent.VK_SHIFT);
                };

            }
        }catch(AWTException e) {
            throw new RuntimeException("robot fail: "+e.getMessage());
        }
    }

Но во время выполнения браузер Safari не принимает событие KeyPress и блокируется с помощью приведенного ниже снимка экрана

enter image description here

Не могли бы вы помочь мне, как я могу решить эту проблему?

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