как получить содержимое тега асинхронного скрипта с помощью Xpath

Я пытаюсь получить содержимое тега скрипта с помощью xpath (используя пакет java org.jdom2), но это асинхронный скрипт, и я не получаю никакого контента.

Тег выглядит примерно так:
script src="https:wwww.xyz" async="" type="text/javascript">/script

Я попытался использовать Xapth page.getNode(//body/script[@type='text/javascript']) Я знаю, что будет много тегов script, но пока предположим, что у нас есть только один .

После просмотра подобных сообщений я узнал, что для загрузки асинхронных вызовов требуется время, а браузер задерживает его загрузку. Любые сведения о том, как узнать, что документ загружается с помощью org.jdom2 (я не использую какой-либо javascript или селен)


person user8618585    schedule 05.06.2019    source источник


Ответы (1)


Это: Я пытаюсь получить содержимое тега скрипта

Это невозможно.

Что не является JDOM?

JDOM не является оболочкой для DOM W3C или другой версии DOM.

2 балла:

  1. JDOM не разбирает XHTML в DOM, он строит XML-дерево, представляющее структуру DOM. Поскольку нет анализа, нет возможности что-либо загрузить.
  2. Даже если JavaScript был загружен для этого тега (используя SAX или другой анализатор DOM), вы не сможете проанализировать его (получить содержимое тега скрипта) с помощью XPath таким образом, потому что это внешний ресурс (файл).
person Randy Casburn    schedule 05.06.2019
comment
Что, если я просто хочу получить значение атрибута src здесь? Сам тег скрипта не загружается, так как он асинхронный ... в то время как теги srcipt без асинхронного атрибута извлекаются - person user8618585; 05.06.2019
comment
Значение атрибута src доступно вам через XPATH, естественно. Просто запросите его. - person Randy Casburn; 05.06.2019