2013-03-15 3 views

ответ

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, но если у вас нет других опций ...

+0

Я вижу, но когда я использую 'System.out.println (page.executeJavaScript (« mobile »). ToString());' Я получаю 'ScriptResult [результат = null page = HtmlPage (* url удален мной *) @ 1990889081] '. Что мне делать? При запуске 'alert (window [" mobile "]);' в Google Chrome есть окно с правильным значением. BTW. Это объект, я не упоминал об этом раньше. – wirher

+0

Возвращаемый тип 'executeJavaScript (...)' является ['ScriptResult'] (http://htmlunit.sourceforge.net/apidocs/com/gargoylesoftware/htmlunit/ScriptResult.html). Прочтите API для 'ScriptResult'! Может быть, 'getJavaScriptResult(). ToString()' даст лучшие результаты. –

+0

.toString() представляет весь объект в виде строки, поэтому значение равно «null», что ничего не значит. К сожалению использование 'getJavaScriptResult' тоже не помогает. – wirher