C# Xamarin 跨平台应用程序。有没有办法打开默认浏览器并自动填写用户名和密码

问题描述 投票:0回答:2

当我在运行控制台应用程序时使用 selenium 时,我能够打开并自动填充信息并单击提交。有没有办法对移动设备执行相同的过程?我本来打算使用 appinum,但考虑到它使用单独的 UI 来自动登录,这似乎不可行。任何提示或提示都会有用。我将所有密码和用户名存储在数据库中,因此检索它们不是问题,而且它适用于一个站点,因此专门为一个站点实现代码也不是问题。

c# authentication xamarin mobile webrequest
2个回答
0
投票

您可以在页面上运行 javascript 来使用 操作 DOM

WebView.EvaluateJavascript()

如:

  WebView mainBrowser = FindViewById<WebView>(Resource.Id.mainBrowser);
  mainBrowser.SetWebViewClient(new MyWebViewClient());
  mainBrowser.Settings.JavaScriptEnabled = true;
  mainBrowser.EvaluateJavascript("document.getElementById('foo').click();");

这适用于嵌入式 WebView。您将无法打开另一个应用程序并恶意地在其上自动输入。


0
投票

我对 Microsoft Visual Studio 中的 C# 代码的看法...

使用...

using Android.Webkit;

代码...

public class LoginWebViewClient : WebViewClient
{
    static System.String username = "myusername";
    static System.String password = "mypassword";
    System.String js = "javascript:(function() { " +
            "document.getElementById('user_login').value = '" + username + "';" +
            "document.getElementById('user_pass').value = '" + password + "';" +
            "})()";

    [Obsolete]
    public override bool ShouldOverrideUrlLoading(WebView view, string url)
    {
        view.LoadUrl(url);
        return false;
    }
    public override void OnPageFinished(WebView view, System.String url)
    {
        base.OnPageFinished(view, url);
        view.LoadUrl(js);
    }
}
public void LoadWebLogin(string url)
{
    web_view = FindViewById<WebView>(Resource.Id.webView1);
    web_view.Settings.JavaScriptEnabled = true;
    web_view.SetWebViewClient(new LoginWebViewClient());
    web_view.LoadUrl(url);
}

使用...

LoadWebLogin("https://myWebsite.com/login.php");

来自以下 stackoverflow 问题...

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

© www.soinside.com 2019 - 2024. All rights reserved.