Извлечь и сохранить значение переменной javascript внутри скрипта, написанного внутри executeScript, в обычную переменную java

В приведенном ниже коде я хочу использовать значение переменной URL внутри написанного javascript и хочу сохранить его в переменной String URL java.

Я пытался использовать метод getParameter, но он используется в JSP. Я пытался найти его в другом месте, но везде извлечение значения объясняется через JSP. Пожалуйста помоги. Есть ли способ, кроме JSP, для использования значения внутри скрипта?

    System.setProperty("webdriver.chrome.driver","F:\\Browser Chrome Driver files\\chromedriver.exe");
    WebDriver driver=new ChromeDriver();
    //WebDriver driver1 = null;
    JavascriptExecutor js = (JavascriptExecutor)driver; 
    js.executeScript("var url = prompt(\"URL\");");
    String url = request.getParameter("url");

2nd attempt:
When I use this code,

    System.setProperty("webdriver.chrome.driver","F:\\Browser Chrome Driver 
    files\\chromedriver.exe");
            WebDriver driver=new ChromeDriver();
            driver.manage().window().maximize();
            //WebDriver driver1 = null;
            JavascriptExecutor js = (JavascriptExecutor)driver; 
            //String script = ;

        String url =(String)js.executeScript("var user = prompt(\"Enter your 
    name, please:\", \"https://myeg/login\");\r\n" + 
                "if (user != null) {\r\n" + 
                "    return user;\r\n" + 
                "}");



            Thread.sleep(5000);
            driver.get(url);

Я получаю исключение в потоке "main" java.lang.NullPointerException: нулевое значение в записи: url = null. Я хочу, чтобы драйвер обращался к URL-адресу через приглашение javascript. Но получение исключения нулевого указателя со второй попытки.

Вы, вероятно, не хотите вызывать приглашение JavaScript, которое, скорее всего, вызовет исключение UnhandledAlertException.

Ardesco 18.07.2019 12:58

Пожалуйста, дополните. Я не понял.

Pratik Pathare 18.07.2019 13:55
w3c.github.io/webdriver/#user-prompts
Ardesco 18.07.2019 15:17

@PratikPathare, не могли бы вы поделиться здесь еще немного контекстом, а также указать место в коде, где определена переменная URL (насколько я вижу, она должна быть определена).

eugene.polschikov 18.07.2019 15:20

URL @eugene.polschikov указан внутри скрипта.

Pratik Pathare 19.07.2019 06:06
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
387
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать return в JavaScript

String script = "var url = prompt(\"URL\");"
              + "return url;";

String url = (String)js.executeScript(script);

Не работает. Получение исключения java.lang.NullPointerException. Запуск ChromeDriver 2.43.600210 (68dcf5eebde37173d4027fa8635e332711d2874a) на порту 25723. Разрешены только локальные подключения. 18 июля 2019 г. 17:23:37 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: обнаружен диалект: исключение OSS в потоке «основной» java.lang.NullPointerException: нулевое значение в записи: url = null

Pratik Pathare 18.07.2019 13:54

Используя приведенный выше код, строка driver.get(url) получает нулевое значение. Следовательно, возникает исключение нулевого указателя.

Pratik Pathare 19.07.2019 06:16
Ответ принят как подходящий

Я сам нашел решение. Я использовал java и преуспел. Я импортировал библиотеку javax.swing.JOptionPane и создал объект класса JOptionPane. Затем использовал метод диалога showInput, и я сохранил значение, которое я поместил в этом диалоге, в переменную. Это сработало.

Другие вопросы по теме