我正在尝试模拟 WKWebView 上特定点的点击,发现 evaluateJavaScript 的 elementAtPoint 适合我的需要。然而,它在我的项目中无法正常运行——除了打印诸如 nil 之类的错误消息之外什么都不做,这不是一个元素,所以我尝试在各种网站的测试项目中运行它,但它也失败了。
我正在使用以下代码(用户使用按钮激活运行操作):
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
@IBOutlet weak var webView: WKWebView!
@IBAction func run(_ sender: Any) {
DispatchQueue.main.async { [self] in
webView.evaluateJavaScript("document.elementFromPoint(219, 23).click();", completionHandler: { [self] (element, error) in
if error != nil {
print(error)
} else {
}
})
}
}
override func viewDidLoad() {
super.viewDidLoad()
webView.navigationDelegate = self
webView.scrollView.contentInsetAdjustmentBehavior = .never
webView.load(URLRequest(url: URL(string: "https://theage.com.au")!))
}
}
有人能在这里发现问题吗?我是否错过了财产变更或其他什么?
我还在此处链接了测试项目 (https://github.com/TheIntelCorei9/DOMTest),因此您可以更深入地了解问题。
谢谢!