【发布时间】:2020-04-05 10:53:45
【问题描述】:
我尝试自动填写login formula 并通过单击登录按钮确认数据。我想使用 Swift 5、macOS 10.15 和 WKWebView。
第一步完成,我可以这样填写我的登录数据:
import Cocoa
import WebKit
class ViewController: NSViewController, WKUIDelegate, WKNavigationDelegate {
let webView = WKWebView()
let button = NSButton()
override func viewDidLoad() {
super.viewDidLoad()
button.frame = CGRect(x: 400, y: 0, width: 40, height: 20)
button.image = NSImage(named: NSImage.Name("Button"))
button.target = self
button.action = #selector(self.fillIn)
self.view.addSubview(button)
self.webView.uiDelegate = self
self.webView.navigationDelegate = self
webView.frame = CGRect(x: 0, y: 0, width: 400, height: 270)
view.addSubview(webView)
let url = URL(string: "https://lobby.ogame.gameforge.com/de_DE/hub")
let request = URLRequest(url: url!)
webView.load(request)
}
@objc func fillIn() {
setWebViewValue(name: "email", data: "user@web.de")
setWebViewValue(name: "password", data: "pwdpwd")
}
func setWebViewValue(name: String, data: String) {
let jsFunc = "document.getElementsByName(\"\(name)\")[0].value = \"\(data)\""
webView.evaluateJavaScript(jsFunc) {(result, error) in
print(result, error)
}
}
}
但是当我点击登录按钮时,所有数据都会被删除。所以 email 和 password 输入字段在登录时是空的,我得到一个无效的输入数据错误。
示例
请注意,即使邮箱地址错误,点击登录按钮时地址和密码输入字段也不会被清除。
问题:
为什么点击登录按钮时自动填充的数据被删除了,为什么正常输入的数据没有被删除?
【问题讨论】: