Синхронизация HtmlUnit с потоком JS Executor

Пожалуйста, потерпите меня, так как я относительно новичок в Java и даже новичок в HtmlUnit. Я хотел бы знать, есть ли способ синхронизировать основной поток с потоком исполнителя js htmlunit? Проблема в том, что я хотел бы читать текстовые значения элементов, в то время как запросы ajax, которые обновляют эти значения, выполняются в фоновом режиме.

Можно ли это сделать без изменения исходного кода HtmlUnit?


person Ivan    schedule 22.12.2011    source источник


Ответы (1)


Я не уверен, что именно это вам нужно, но вы можете установить в веб-клиенте HtmlUnit элемент NicelyResynchronizingAjaxController, который автоматически преобразует все ваши асинхронные вызовы в синхронные вызовы. Это позволяет тестировать ваш код AJAX без необходимости опроса или ожидания в течение произвольного времени, надеясь, что вызов AJAX завершен. Это не решение для всех случаев, но часто бывает очень полезным.

person JB Nizet    schedule 22.12.2011
comment
Благодарю за ваш ответ. Я пытаюсь написать простой код очистки экрана в реальном времени. У меня есть бесконечный (прерываемый пользователем) цикл, в котором я проверяю HtmlDOM на наличие изменений в определенных узлах, и если я вижу такие изменения, я записываю текстовые значения некоторых их дочерних узлов. Однако иногда кажется, что код в цикле обращается к HtmlDOM, в то время как фоновый javascript все еще обновляет те же узлы. Это приводит к сбоям. Думаю, я мог бы использовать DOMChangeListener, но будет ли он по-прежнему синхронизироваться с фоновым потоком JS? - person Ivan; 23.12.2011