有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用webview和javafx设置html节点值

我试图在加载到webview后设置html表单元素的值。我试着使用

org.w3c.dom.Document doc = webEngine.getDocument();
HTMLFormElement form = (HTMLFormElement) doc.getElementsByTagName("form").item(0);
NodeList nodes = form.getElementsByTagName("input");
nodes.item(1).setNodeValue("yadayada"); //this is where i am setting the value

但是没有成功。有人能帮我吗。这是我的密码

org.w3c.dom.Document doc = webEngine.getDocument();                 
if (doc!=null && doc.getElementsByTagName("form").getLength() > 0) {
      HTMLFormElement form = (HTMLFormElement) doc.getElementsByTagName("form").item(0);
      String username = null;
      String password = null;
      NodeList nodes = form.getElementsByTagName("input");
      for (int i = 0; i < nodes.getLength(); i++) {
      if(nodes.item(i).hasAttributes()){
          NamedNodeMap attr = nodes.item(i).getAttributes();
          for (int j=0 ; j<attr.getLength();j++){
             Attr atribute = (Attr)attr.item(j);
             if(atribute.getValue().equals("password")){
             System.out.println("Password detected");
             nodes.item(i).setNodeValue("123456");
           }
         }
      }
   }
 }

共 (1) 个答案

  1. # 1 楼答案

    我上网后找到了解决办法。问题是我使用的是set node value,但输入标记的值是使用HTMLInputElement设置的。这个链接对我来说很有价值 Performing an automated form post of login using webview 比如

    HTMLInputElement password = (HTMLInputElement) nodes.item(0).setValue("yadayada");