Cocoa Swift: ошибка evaluateJavaScript необязательна («Произошло исключение JavaScript»)

#swift #cocoa #wkwebview #wknavigationdelegate

#swift #cocoa #wkwebview #wknavigationdelegate

Вопрос:

Я загружаю WKWebView с веб-страницы и пытаюсь выполнить javascrip:

 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { 
     webView.evaluateJavaScript("document.getElementById('someElement').innerText") { (result, error) in
        if error != nil {
            print(error?.localizedDescription ?? "")
        }
    }
}
 

Но я получаю эту ошибку:

 po error
 Optional<Error>
  - some : Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=TypeError: null is not an object (evaluating 'document.getElementById('someElement').innerText'), WKJavaScriptExceptionColumnNumber=39, WKJavaScriptExceptionSourceURL=https://somewebsite.com/, NSLocalizedDescription=A JavaScript exception occurred}
 

Почему я получаю эту ошибку?, кто-нибудь из вас знает, что я делаю неправильно или как это обойти?

Комментарии:

1. Не могли бы вы, пожалуйста, напечатать просто error и нет error.localizedDescription ? Вы скрываете подробную информацию от себя!

2. @Sulthan Я обновил ошибку. Пожалуйста, дайте мне знать, если вам понадобится что-нибудь еще

3. null is not an object очевидно. Это означает, что нет элемента с заданным идентификатором someElement (метод getElementById возвращает null ). Убедитесь, что вы правильно ввели идентификатор и что он действительно существует в документе.

Ответ №1:

document.getElementById() возвращает значение null, если элемент не удалось найти. Поэтому я думаю, что имя ‘someElement’ отсутствует на веб-странице.