当我在运行控制台应用程序时使用硒时,我能够打开并自动填充信息并单击提交。无论如何可以为移动设备执行相同的过程吗?我打算使用 appinum,但考虑到它使用单独的 UI 来自动登录,这似乎不可行。任何提示或提示都会很有用。我将所有密码和用户名存储在数据库中,因此检索它们不是问题,而且它适用于一个站点,因此专门为一个站点实现代码也不是问题。
您可以在页面上运行 javascript 以使用
WebView.EvaluateJavascript()
如:
WebView mainBrowser = FindViewById<WebView>(Resource.Id.mainBrowser);
mainBrowser.SetWebViewClient(new MyWebViewClient());
mainBrowser.Settings.JavaScriptEnabled = true;
mainBrowser.EvaluateJavascript("document.getElementById('foo').click();");
这将适用于嵌入式 Web 视图。您将无法打开另一个应用程序并恶意自动输入该应用程序。
我对Visual Studio中的C#代码的看法Microsoft...
用。。。
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");
从以下堆栈溢出问题...
如何在 Android Studio 的 WebView 中自动填充网站字段/表单?