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