使用EvaluateJavaScript单击按钮意外行为

时间:2018-09-28 18:34:21

标签: javascript ios swift wkwebview

我有一个UIViewController,它具有一个WKWebView,该WKWebView带有一个需要自动单击的按钮来加载特定视图。为了解决这个问题,我使用了WKNavigationDelegate协议功能didFinish和WKWebView的evaluateJavaScript方法。这是我的实现

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {

        webView.evaluateJavaScript("document.getElementsByClassName('myButtonClass')[0].click()") { (result, error) in
            print("ERROR: \(error)")
            print("RESULT: \(result)")
        }
    }

因此,一旦页面加载完毕,我试图单击屏幕上的某个按钮(请记住,在此特定页面视图上只有一个具有此类名称的按钮)。运行此代码时,resulterror都被打印出来,并且它们都是nil。但是,没有单击该按钮,并且WKWebView从未重定向到该按钮链接到的链接。

怎么可能没有error但什么也没发生?

我是否缺少某种导航设置?

1 个答案:

答案 0 :(得分:0)

我认为您在脚本中缺少; 。试试这个

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {

    webView.evaluateJavaScript("document.getElementsByClassName('myButtonClass')[0].click();") { (result, error) in
        print("ERROR: \(error)")
        print("RESULT: \(result)")
    }
}