javascript - 如何在 Android Studio 的 WebView 中自动填充网站字段/表单?

标签 javascript java android android-webview

我想自动填充例如 Facebook 的登录字段(电子邮件和密码)或 Google 的搜索字段。我已经解决了很多关于自动填充的问题,包括 this .

这是我目前的代码,它在 WebView 中打开网站,但没有填写任何内容。对于 getElementById,我检查了 facebook 的电子邮件和密码字段,他们的 ID 是电子邮件和密码。

    webView = (WebView) findViewById(R.id.webView1);
    webView.loadUrl("https://www.facebook.com");
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDomStorageEnabled(true);
    webView.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }


        public void onPageFinished(WebView view, String url) {
            String user = "udb";
            String pwd = "abcdefg";
            view.loadUrl("javascript:document.getElementById('email').value = '" + user + "';document.getElementById('pass').value='" + pwd + "';");
            System.out.println("AUTOFILL");
        }
    });

它给了我这个错误

I/chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot set property 'value' of null", source: (1)

虽然我对 javaScript 了解不多。

最佳答案

好吧,我仍然无法让 facebook 正常工作,但我让 google 登录正常,其他一些网站也可以注册/登录。所以基本上你需要检查网站的元素(通过在桌面上使用谷歌浏览器)然后获取元素 ID;

这是填写表单/字段的代码:

    webView.loadUrl("javascript:(function() { document.getElementById('last_name').value = '" + lName + "'; ;})()");

这是点击按钮的代码:

    webView.loadUrl("javascript:(function() { var z = document.getElementById('signInButton').click(); })()");

哦,我用我的手机来做这个,因为使用模拟器它没有做任何事情。

编辑:我实际上通过检查 mobile.facebook.com 网站让 facebook 有点儿工作,但是没有电子邮件 ID,只有密码和登录按钮以及其他一些元素。

关于javascript - 如何在 Android Studio 的 WebView 中自动填充网站字段/表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41087959/

相关文章:

javascript - 当 FlexSlider 幻灯片不在 View 中时停止播放 YouTube 视频

javascript - 如何从 System.Web.HttpContext.Current.Response.BinaryWrite(byteArray); 下载文件来自 javascript 而不是 C#

java - 从部署到已运行的 Tomcat 8 实例的 Spring Boot WAR 文件中获取 Tomcat 运行的端口

手指进入或离开 View 时的android MotionEvent

Androids MediaPlayer 在 Activity 进入时每隔一秒播放一次视频

javascript - React 链接与标签和箭头函数

javascript - 无法从控制台日志中的 api "undefined"请求数据

java - 将 "Short[]"元素的默认值设置为 0 而不是 null?

java - 使用 Spring Security 进行 Spring Boot 测试。如何启动另一种安全配置?

android - 如何查看短信是否真的发送?