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

时间:2014-01-18 19:20:06

标签: 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的情况下这样做,或者我只是遗漏了什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果你没有任何身份证,你可以这样做:

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

您目前正在按ID要求,但该元素上没有任何ID。