Как мога да получа резултата от html страницата на JavaScript с помощта на HtmlUnit?

Сега работя върху използването на JavaScript html, за да направя някои тестове. И искам да използвам HtmlUnit за достъп до страницата, за да получа текущите резултати на уеб страницата на JavaScript. И тази страница е тук (за източника на страницата можете да щракнете с десния бутон на мишката, за да видите източника):

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

това, което искам, е да получа текущия резултат относно стойността на забавяне "delay:xxx 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);

Източникът съдържа само изходните кодове на JavaScript и html съдържание, но не и резултата от изпълнението на JavaScript на страницата. Какво трябва да направя с HtmlUnit?

Въпросът ми е как мога да използвам HtmlUnit, за да получа резултат от изпълнение на JavaScript на страницата?

Благодаря, че прочетохте текста, труден за моите английски умения.


person user3003918    schedule 18.11.2013    source източник


Отговори (1)


HtmlUnit има JavaScript двигател, който е много чувствителен към синтактични грешки. Така че фактът, че нещо работи в нормален браузър (Chrome, IE, FF и т.н.), не означава, че ще работи на HtmlUnit.

Прегледах много бързо кода и открих твърде много синтактични грешки. Дори пуснах това през w3c валидатора и открих 10 грешки. Ето само един пример:

<button type="button style="

Явно пропускаш цитат там.

А също и някои грешки, които валидаторът може да не открие, като например:

<text id= _delay>

Липсват ви кавичките и имате допълнително място.

И накрая, най-вероятната причина кодът да не работи е, че сте го дефинирали като HTML 4.01 Transitional и сте добавили HTML5 атрибута onerror към изображението. Освен това сте добавили част от JavaScript към този атрибут и се оказва, че JavaScript не се изпълнява.

Коригирането на грешки може да помогне. Това обаче не означава непременно, че ще работи след това.

person Mosty Mostacho    schedule 18.11.2013
comment
благодаря, ще проверя грешките. И аз съм озадачен дали извиквам htmlunit по правилния начин, за да изпълня JavaScript на html точно като въпросните кодове, които прикачих. - person user3003918; 19.11.2013
comment
Всичко е наред така, както е (при условие, че Source е изцяло с малки букви) :) - person Mosty Mostacho; 19.11.2013