2013-11-18 1 views
1

Теперь я работаю над использованием JavaScript html для выполнения некоторых тестов. И я хочу использовать HtmlUnit для доступа к странице, чтобы получить результаты на веб-странице JavaScript. И эта страница находится здесь (на исходный код страницы, вы можете щелкнуть правой кнопкой мыши мыши, чтобы увидеть источник):Как я могу получить результат на странице html JavaScript с помощью HtmlUnit?

http://itec.hust.edu.cn/~zhangcw/javascript.html

, что я хочу, чтобы получить идущее результат о задержке значения задержки»: ххх ms ", рассчитанный на JavaScript на этой странице. Однако, когда я использую HtmlUnit для захвата html, он всегда захватывает исходный источник этой страницы и не содержит результат выполнения. Мой код выглядит так:

WebClient webClient = new WebClient(); 
HtmlPage page = webClient.getPage("http://itec.hust.edu.cn/~zhangcw/javascript.html"); 
String source = page.asXml(); 
System.out.println(Source); 

Источник содержит только исходные коды и HTML содержание JavaScript, а не результат выполнения со стороны JavaScript на этой странице. Что мне делать с помощью HtmlUnit?

Мой вопрос: как я могу использовать HtmlUnit, чтобы получить результат выполнения JavaScript на странице?

Спасибо, что прочитали текст, жесткий для моего английского навыка.

ответ

1

HtmlUnit имеет механизм JavaScript, который очень чувствителен к синтаксическим ошибкам. Таким образом, факт, что что-то работает в обычном браузере (Chrome, IE, FF и т. Д.), Не означает, что он будет работать на HtmlUnit.

Я очень быстро просмотрел код и обнаружил слишком много синтаксических ошибок. Я даже запускаю это через w3c validator и обнаружил 10 ошибок. Вот только один пример:

<button type="button style=" 

Вам явно не хватает цитаты.

А также некоторые ошибки, которые валидатор не может обнаружить такие как:

<text id= _delay> 

Вы пропускаете цитаты и у вас есть дополнительное пространство.

И, наконец, наиболее вероятная причина, по которой код не работает, заключается в том, что вы определили его как HTML 4.01 Transitional, и вы добавили к нему атрибут HTML5 onerror. Кроме того, вы добавили фрагмент JavaScript в этот атрибут, и это, скорее всего, JavaScript, который не выполняется.

Ошибки фиксации могут помочь. Однако это не обязательно означает, что он будет работать после этого.

+0

спасибо, я проверю ошибки. И я озадачен тем, называю ли я htmlunit правильным способом выполнить JavaScript на html, точно так же, как и коды, о которых я говорил. – user3003918

+0

Все в порядке, так оно и есть (при условии, что «Source» - все нижнее) :) –

Смежные вопросы