以编程方式提交表单数据android(数据丢失)

时间:2014-11-16 00:00:50

标签: javascript android forms webview programmatically-created

我正在为自己制作一个应用程序,以确定何时可以使用我的大学课程(已满)。

我需要我的应用程序能够以编程方式将信息输入“课程搜索”表单并按下提交按钮,以便我可以检查是否有任何课程显示为打开。

以下是表单的网站:https://css.nevada.unr.edu/psc/rncssprd/EMPLOYEE/HRMS/c/COMMUNITY_ACCESS.CLASS_SEARCH.GBL

到目前为止,我可以将数据输入到表单中,并在webview中显示它。问题是,当我有程序时,单击提交按钮没有任何反应。好吧,实际上它确实搜索了我提交的先前数据丢失并且它在表单中没有值搜索。

到目前为止,这是我的代码:

public class Main extends Activity{

String URL = "https://css.nevada.unr.edu/psc/rncssprd/EMPLOYEE/HRMS/c/COMMUNITY_ACCESS.CLASS_SEARCH.GBL";
WebView mWebview;

int noRepeat = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    new FetchItemsTask().execute();

}

private class FetchItemsTask extends AsyncTask<Void,Void,Boolean> {

    @Override 
    protected void onPreExecute() { 

    }

    @Override
    protected Boolean doInBackground(Void... params) {
        // TODO Auto-generated method stub

        return true;
    }

    @Override
    protected void onPostExecute(Boolean result) {
        // TODO Auto-generated method stub
        super.onPostExecute(result);


            mWebview = (WebView ) findViewById(R.id.webView1); 
            // load login url
            mWebview.loadUrl(URL); 
            //mWebview.setVisibility(View.INVISIBLE); 
            mWebview.getSettings().setJavaScriptEnabled(true); 

            mWebview.setWebViewClient(new WebViewClient() { 

                 public void onPageFinished(WebView view, String url) { 

                        // first time go to search page 

                         Toast.makeText(getApplicationContext(), "done loading login, pressing button", Toast.LENGTH_SHORT).show();

                         mWebview.loadUrl("javascript: {" +  "document.getElementById('SSR_CLSRCH_WRK_SUBJECT$0').value = '"+"temp1"+"';" + 
                         "document.getElementById('SSR_CLSRCH_WRK_CATALOG_NBR$1').value = '"+"temp2"+"';" + 
                         "document.getElementsByName('CLASS_SRCH_WRK2_SSR_PB_CLASS_SRCH')[0].click();" +
                         "};" ); // if I take out the click here the form will have temp1 and temp2 entered and everything fine, but it clicks temp1 and temp2 get cleared before it clicks some reason



                 }
            });


    }
}

感谢任何帮助,我很感激。表格位于上方的网站,如果您需要查看它。

1 个答案:

答案 0 :(得分:1)

我怀疑document.getElementsByName不受支持。我建议使用document.getElementById因为链接(按钮)有一个&#34; id&#34;属性。

而不是

document.getElementsByName('CLASS_SRCH_WRK2_SSR_PB_CLASS_SRCH')[0].click();

使用:

document.getElementById('CLASS_SRCH_WRK2_SSR_PB_CLASS_SRCH').click();