Javascript не может получить текущий HTML (после того, как Javascript изменил его) - PullRequest
0 голосов
/ 25 сентября 2019

У меня проблемы с получением HTML-кода после добавления в него элементов Javascript.Я использую трепетное WebView, которое, как мне кажется, просто связано с Android WebView, хотя я могу ошибаться.

Я попробовал то, что, как мне кажется, известно как все: document.documentElement.innerHTML, document.getElementById ('html') .innerHTML, document.getElementsByTagName (' html ') [0] .innerHTML document.querySelector (' html '). innerHTML

Все они возвращают исходный html до добавления любого из элементов,это все данные, которые мне нужны.

Возможно, стоит отметить, что когда я нахожусь в Chrome и использую меню инструментов разработчика и набираю один из них в консоли после обновления страницы, меня приветствуеттот же источник даже после добавления новых данных.Однако, если я снова открою инструменты разработчика, эти команды приведут к нужному выводу, который мне нужен.Есть ли способ обновить контроллер флаттера или сказать веб-представлению обновить его элементы?

Вот мой код:

    static Future onPageFinished(String s) async {
        if (_run) {
          _run = false;

          List<String> credentials = await AppMain.settings.data.getCredentials();

          print("page finished loading");
          String js = """javascript:
              document.getElementById('userNameInput').value='${credentials[0]}';
              document.getElementById('passwordInput').value='${credentials[1]}';
              document.getElementById('submitButton').click();
          """;
          await _controller.evaluateJavascript(js);
          print("js evaluated");

          js = """
            (function(){return window.document.body.outerHTML})();
          """;

          Future.delayed(Duration(seconds: 5), () async {
            String html = await _controller.evaluateJavascript(js);
            print("got response");
            print(html);

            crawlWebsite(html);
          });
        }
      }

Спасибо, что нашли время, чтобы прочитать мой вопрос,Я ценю все отзывы и предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...