JavaScript не может получить доступ к динамически сгенерированному элементу с Jquery и Jsoup

Давайте объясним, что происходит, я разбираю HTML-страницу, чтобы показать ее содержимое в моем приложении для Android. во-первых, я загружаю HTML с Android webview а затем я получаю HTML-код по коду ниже:

  // load a webview
wb.postUrl(url, EncodingUtils.getBytes(postData, "BASE64"));

// on page finish i will call a   @JavascriptInterface
public void onPageFinished(WebView view, String url) {

view.loadUrl("javascript:window.HTMLOUT.processMain(
document.getElementsByTagName('html')[0].innerHTML);");

}




@JavascriptInterface
class LoadListener{
@JavascriptInterface
public void processMain(String html)
{

doc= Jsoup.parse(html);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {

//here i can parse doc that is a jsoup document and select elements
doc.select("#login > tbody > tr > td.error").text();
});

моя проблема: есть table в моей HTML-странице, которая динамически добавляется в HTML (я не уверен, как, добавить? addchild? php? или …, потому что у меня нет доступа к кодам php). я выбираю эту таблицу с этой строкой кода! но он возвращает ноль.

doc.select("#login > tbody > tr > td.error").text()

так как я могу выбрать эту таблицу ??

1

Решение

Jsoup это не браузер. Это парсер. Он не понимает JavaScript и не может его запустить. Поэтому, если ваша страница динамически создает элементы DOM через Javascript, вы не сможете получить к ней доступ с помощью Jsoup. Заглянуть в селен вебдрайвер если тебе это нужно

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]