Blagovidov
@Blagovidov
Web developer

Как вставить текст в input страницы загруженной в webView?

Добрый день. Решил загрузить web ресурс в webView. Сейчас пытаюсь найти определенный input и вставить в него текст, но пока безуспешно. Кто с этим сталкивался и как решил вопрос?
  • Вопрос задан
  • 554 просмотра
Пригласить эксперта
Ответы на вопрос 1
@rPman
не с android но на java, javafx.scene.web.WebEngine (как я понимаю он же и на android используется)

берете документ webEngine.getDocument() к нему можнео делать запросы вида getElementById или getElementsByTagName, в общем почти все те же методы что доступны в javascript (querySelector напрямую недоступен), в результате вы получите доступ к элементам типа org.w3c.dom.html.HTMLImageElement / HTMLInputElement и т.п. у которых будут методы установки значений value или просто доступ к атрибутам по имени.

Эмуляция кликов доступна так же напрямую из java но настоятельно рекомендую все что должно вызывать методы внутри браузера на javascript делать вызовом webEngine.executeScript, а если до элемента сложно достучаться по его идентификатору (например у него нет ни имени ни идентификатора) но вы смогли получить его объект в java, вы можете передать его обратно в javascript вот так:
final static string GET_NODE_TEXT = "unique_node_name";
...
// после загрузки страницы
htmlWnd = (DOMWindowImpl)((DocumentView)htmlDoc).getDefaultView();
...
// пример вызова submit формы, элемент которой у нас в node
htmlWnd.setMember(GET_NODE_TEXT, node);
browser.executeScript("(function(){var x=window."+GET_NODE_TEXT+";x.form.submit();})()");
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы