Как я могу получить значение из переменной JavaScript, используя HTMLUnit
framework? Как у меня есть var important = "Few important words"
, и я хочу получить эту строку.Доступ к переменной JavaScript с использованием HTMLUnit
1
A
ответ
1
Если переменная является глобальной областью, я бы попытался использовать функцию executeJavaScript(...)
.
Но если переменная не является глобально-областей, я думаю, вы не повезло:
(function(){
var important = "Few important words";
// ...
}());
В этом случае вам, возможно, придется полагаться на экран выскабливание или на самом деле разбора HTML/JavaScript для извлечь информацию. Удачи.
См. Также How do I extract a long string of text from some JavaScript on a web page using BeautifulSoup? - этот вопрос касается Python, но окончательный ответ - «использовать регулярные выражения» - похоже, он может работать на Java. Parsing HTML/JavaScript with a RegEx is not the ideal solution, но если у вас нет других опций ...
Я вижу, но когда я использую 'System.out.println (page.executeJavaScript (« mobile »). ToString());' Я получаю 'ScriptResult [результат = null page = HtmlPage (* url удален мной *) @ 1990889081] '. Что мне делать? При запуске 'alert (window [" mobile "]);' в Google Chrome есть окно с правильным значением. BTW. Это объект, я не упоминал об этом раньше. – wirher
Возвращаемый тип 'executeJavaScript (...)' является ['ScriptResult'] (http://htmlunit.sourceforge.net/apidocs/com/gargoylesoftware/htmlunit/ScriptResult.html). Прочтите API для 'ScriptResult'! Может быть, 'getJavaScriptResult(). ToString()' даст лучшие результаты. –
.toString() представляет весь объект в виде строки, поэтому значение равно «null», что ничего не значит. К сожалению использование 'getJavaScriptResult' тоже не помогает. – wirher