如何解决以编程方式登录网站
| 嗨,我想以编程方式填写登录表格并调用单击按钮以在某些网站上登录。 我正在尝试通过以下代码片段实现这一目标:public class LoginActivity extends Activity {
WebView mWebView;
Button btn;
EditText txtLogin;
EditText txtPassword;
WebView webview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button)this.findViewById(R.id.button1);
txtLogin = (EditText)this.findViewById(R.id.txtLogin);
txtPassword = (EditText)this.findViewById(R.id.txtPassword);
webview = (WebView)findViewById(R.id.webView1);
webview.setWebViewClient(new WebClient());
webview.getSettings().setJavaScriptEnabled(true);
btn.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
OpenWebContent();
}
});
}
public void OpenWebContent()
{
webview.loadUrl(\"http://www.www.com\");
}
public class WebClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view,String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view,String url)
{
view.loadUrl(\"javascript:(function() { \" +
\"document.getElementsByTagName(\'user\').value = \" + \"\'mylogin\'\" + \";\" +
\"document.getElementsByTagName(\'password\').value = \" + \"\'mypassword\'\" + \";\" +
\"document.getElementsByTagName(\'input\')[4].click(); \" +
\"})()\");
}
}
不幸的是,上面的代码无法正常工作。我有省略吗?
感谢您的任何建议。
解决方法
首先-并非所有javascript方法都受支持(尽管我找不到支持和不支持的列表)。
在这种情况下,我认为您应该遵循这个简单的例子。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。