SWIFT:填充 HTML 输入 [type="text"]



如何在当前以Web视图中显示的HTML表单上填写字段? 此应用程序的目的是自动登录网站。 根据不同的教程,我主要复制粘贴快速代码,但我的代码不起作用。很高兴得到一个提示,错误可能是什么,甚至一个完全不同的方法也非常感谢。

我想登录的网站的重要部分是这样构建的:

文本字段用户名:

<input type="text" class="form-control" name="username" id="username" placeholder="Username:">

文本字段密码:

<input type="password" class="form-control" name="password" id="password" maxlength="20" placeholder="Passwort:">

登录按钮(提交登录(:

<input type="submit" value="login" class="btn btn-default">

我损坏的视图控制器快速代码.swift:

它只是加载网站,但没有填写用户名或密码,也没有提交。

@IBOutlet weak var MyWebView: UIWebView!
func webViewDidFinishLoad(MyWebView: UIWebView) {
// fill data
let savedUsername = "USERNAME"
let savedPassword = "PASSWORD"
let fillForm = String(format: "document.getElementById('username').value = '(savedUsername)';document.getElementById('password').value = '(savedPassword)';")
MyWebView.stringByEvaluatingJavaScript(from: fillForm)
//submit form
let deadlineTime = DispatchTime.now() + .seconds(1)
DispatchQueue.main.asyncAfter(deadline: deadlineTime) {
MyWebView.stringByEvaluatingJavaScript(from: "document.value["login"].submit();")
}
}
override func viewDidLoad() {
super.viewDidLoad()
let url = URL (string: "https://www.austrocontrol.at/flugwetter/")
MyWebView.loadRequest(URLRequest(url: url!))
webViewDidFinishLoad(MyWebView: MyWebView)
}

我不确定如何处理我从 Xcode 模拟器获得的输出,但也许它在某种程度上有所帮助:

[...] Starting WebFilter logging for process AustroControl Viewer
[...] _userSettingsForUser : (null)
[...] _WebFilterIsActive returning: NO
[...] [MediaRemote] [AVOutputContext] WARNING: AVF context unavailable for +[MRAVOutputContext sharedAudioPresentationContext]_block_invoke
[...] [MediaRemote] [AVOutputContext] WARNING: AVF context unavailable for +[MRAVOutputContext createOutputContextWithUniqueIdentifier:]

首先:最好使用WKWebView

您可以创建一个函数,在您的WebView中运行JavaScript,并在提交之前填写HTML表单。

private func setWebViewValue(name: String, data: String) {
let jsFunc = "document.getElementById("(name)").value = "(data)""
webView.evaluateJavaScript(jsFunc, completionHandler: nil)
}

相关内容

  • 没有找到相关文章

最新更新