Java 如何在webview中自动填充表单的字段?
基本上,我想在paypal注册表上填写一个字段。 这是我的密码:Java 如何在webview中自动填充表单的字段?,java,android,webview,android-webview,Java,Android,Webview,Android Webview,基本上,我想在paypal注册表上填写一个字段。 这是我的密码: final String paypal_url = "https://www.paypal.com/welcome/signup/#/email_password"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.a
final String paypal_url = "https://www.paypal.com/welcome/signup/#/email_password";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fillField();
}
private void fillField() {
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(paypal_url);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
view.loadUrl("javascript:document.getElementById('paypalAccountData_firstName').value = 'test';");
}
});
}
结果如下:它加载页面,然后显示:
我已经在这个网站上尝试了几乎所有的解决方案,但没有成功,字段没有填充。您需要等待整个网页加载,包括其内容id=paypalAccountData\u firstName 所以你应该改变
view.loadUrl("javascript:document.getElementById('paypalAccountData_firstName').value = 'test';");
到
所以,问题是贝宝的重定向。Paul发布的代码有效,但只有在加载了该网站的美国版本时才有效。 变化: 及
这是行不通的。它显示页面而不填充字段。是否要自动填充此标记paypalAccountData\u firstName,对吗?由于我的国家/地区的原因,我遇到了此页面的重定向,因此我不确定页面中存在什么类名是。什么重定向?使用我发布的代码,如果我用另一个随机字符串obv更改id paypalAccountData_firstName,而不是另一个id,它将显示页面而不填充字段,因此只有使用正确的id名称,它才会执行某些操作,即使它不是我想要的。所以我认为问题不在于身份。好吧,我发现了问题。非常感谢你的帮助。
view.loadUrl( "javascript:window.onload= (function(){ document.getElementById('paypalAccountData_firstName').value = 'test';})();");
final String paypal_url = "https://www.paypal.com/us/signup/account";
view.loadUrl( "javascript:window.onload= (function(){ document.getElementById('paypalAccountData_firstName').value = 'test';})();");