У меня проблемы с получением 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);
});
}
}
Спасибо, что нашли время, чтобы прочитать мой вопрос,Я ценю все отзывы и предложения.