Теги скрипта в теле не оцениваются после предыдущих ошибок JavaScript - PullRequest
1 голос
/ 08 марта 2011

У меня есть один HTML-файл, в котором метод JavaScript (скажем) postIt() определен внутри тега <script>.Его тегу предшествуют две ссылки на внешние файлы JavaScript, которые больше не существуют.Все эти <script> теги находятся внутри <body>.

Мне пришлось установить WebClient.setThrowExceptionOnFailingStatusCode в false, чтобы я мог продолжить работу с несуществующими файлами JavaScript.

Но когдапопробуйте позвонить page.executeJavascript("postIt()"), я получу Ссылка не найдена ошибка!

  1. В чем причина этого, и есть ли у нас возможный обходной путь?Движок JavaScript работает в собственном потоке?

Ответы [ 2 ]

6 голосов
/ 08 марта 2011

Большинство движков JavaScript прекращают синтаксический анализ / оценку кода, когда они сталкиваются с ошибками parsetime / compiletime, как и другие компиляторы.

Это функция, а не ошибка.

Обходной путь должен исправить ошибки.

0 голосов
/ 08 марта 2011

Ну, как оказалось, я использовал неверный код JavaScript, который, в свою очередь, перенаправил мой код на страницу 404. Но так как я установил webClient.setThrowExceptionOnFailingStatusCode() и webClient.setPrintContentOnFailingStatusCode() в false, HtmlUnit не уведомил меня об этом.

Таким образом, для решения подобных проблем нам нужно держать вышеупомянутые флаги включенными и удалять ВСЕ ошибки JavaScript.

...