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