【问题标题】:WKWebView removes automatically filled in dataWKWebView 移除自动填充的数据
【发布时间】: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)
        }
    }
}

但是当我点击登录按钮时,所有数据都会被删除。所以 emailpassword 输入字段在登录时是空的,我得到一个无效的输入数据错误。

示例

请注意,即使邮箱地址错误,点击登录按钮时地址和密码输入字段也不会被清除。

问题:

为什么点击登录按钮时自动填充的数据被删除了,为什么正常输入的数据没有被删除?

【问题讨论】:

    标签: swift macos wkwebview


    【解决方案1】:

    检查页面上的 javascript 代码,看看它是在自己清除字段还是在等待输入字段。

    【讨论】:

      猜你喜欢
      • 2020-09-07
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      • 2011-05-11
      • 2019-07-09
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      相关资源
      最近更新 更多