Давайте объясним, что происходит, я разбираю 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()
так как я могу выбрать эту таблицу ??
Jsoup это не браузер. Это парсер. Он не понимает JavaScript и не может его запустить. Поэтому, если ваша страница динамически создает элементы DOM через Javascript, вы не сможете получить к ней доступ с помощью Jsoup. Заглянуть в селен вебдрайвер если тебе это нужно
Других решений пока нет …