java - 在 WebView 在线表单中填写没有 id 的文本字段

标签 java javascript android

我正在尝试编写一个程序来使用本地字符串变量填写在线登录信息。 这是我到目前为止所拥有的:

        web = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = web.getSettings();
        webSettings.setJavaScriptEnabled(true);
        web.getSettings().setUserAgentString("Mozilla/5.0 " +
                "(Windows NT 6.2; " +
                "WOW64) AppleWebKit/537.31 " +
                "(KHTML, like Gecko) Chrome/20 " +
                "Safari/537.31");
        web.getSettings().setDefaultZoom(WebSettings.ZoomDensity.CLOSE);
        web.loadUrl("http://ta.yrdsb.ca/yrdsb/");

        web.setWebViewClient(new WebViewClient() {
           public void onPageFinished(WebView view, String url) {
              String username="test";
              String password="test";
              view.loadUrl("javascript:document.getElementById('username').value = '"+username+"';document.getElementById('password').value='"+password+"';");
           }
        });

我的问题是字段没有被填写。我认为问题出在 id 上,因为从我所看到的来看,这个特定站点上的文本字段似乎没有与之关联的 id。这是用户名字段(没有 id):

<input type="text" name="username" size="10" border="0">

所以我的问题是,如果没有用户名和密码字段的 ID,我将如何执行此操作,或者我只是缺少某些内容?

提前致谢。

最佳答案

如果您没有任何 ID,您可以执行以下操作:

document.getElementsByName("username")[0].value = "username";

您当前正在通过 ID 进行请求,但元素上没有任何 ID。

关于java - 在 WebView 在线表单中填写没有 id 的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21208731/

相关文章:

android - 新 android studio 项目中的 list 文件夹

java - 如何组合来自不同列表的同一索引处的元素?

java - Hibernate 生成的 SQL 错误

java - VOID:在同一按钮上调用静态和非静态

javascript - JS encodeURIComponent 结果与 FORM 创建的不同

javascript - 为什么 Ember 在 ember.js :3722? 处抛出 "Uncaught Error: Assertion Failed: calling set on destroyed object"

java - "R cannot be resolved to a variable "即使在安装新的 Eclipse 之后

java - Hibernate+SQLServer/批量只插入新记录

javascript - 刷新后重置本地存储值

java - 仅显示 ListView 中的第一项