【发布时间】:2018-03-12 21:21:24
【问题描述】:
加载此网址后,我想在 ID 为“用户名”的 WKWebView 的特定元素中输入文本:https://app.oncoursesystems.com/homeworkportal/index/brrsd webview 中的用户名字段应该填充我指定的任何值,但是每当我运行我的代码时,我都会收到此错误:
错误:可选(错误域=WKErrorDomain 代码=4“发生 JavaScript 异常”UserInfo={WKJavaScriptExceptionLineNumber=1,WKJavaScriptExceptionMessage=TypeError:null 不是对象(评估 'document.getElementById("Username").value= 'xxx''), WKJavaScriptExceptionColumnNumber=52, WKJavaScriptExceptionSourceURL=https://app.oncoursesystems.com/homeworkportal/index/brrsd, NSLocalizedDescription=发生 JavaScript 异常})
我尝试在 func webView: didFinishNavigation: 方法下运行我的代码(使用 WKNavigationDelegate),但我得到了同样的错误
这是我的代码(这些都是为了得到相同的结果而进行的不同尝试):
let js = "var myelement = document.getElementById(\"Username\").value='xxx'; myelement.innerHTML= \"New Text\";"
webView.evaluateJavaScript(js, completionHandler: nil)
webView.evaluateJavaScript("document.getElementById('Username').value='xxx'", completionHandler: nil)
webView.evaluateJavaScript("window.onload = function() { alert(document.getElementById('Username').value='xxx');};", nil)
//I got this error instead for the last one: Error: Optional(Error Domain=WKErrorDomain Code=5 "JavaScript execution returned a result of an unsupported type" UserInfo={NSLocalizedDescription=JavaScript execution returned a result of an unsupported type})
我在 viewDidLoad、webView:didFinishNavigation:(以确保 html 已加载)和单击按钮上尝试了所有这些
如何才能成功地使用值“xxx”填写表单的用户名字段?这是由链接本身的问题引起的还是我的代码有问题?
【问题讨论】:
-
你能确定网页中存在
Username字段吗?
标签: javascript swift wkwebview