我正在将应用程序生成的内容放入其中UIWebView,并尝试测试我是否正确执行此操作.这是我在Web视图中添加的HTML字符串:
@"<html><head></head><body><p>Come, let me clutch thee. I have thee not, and yet I see thee still. Art thou not, fatal vision, sensible to feeling as to sight?</p></body></html>"
Run Code Online (Sandbox Code Playgroud)
然后它进入Web视图:
[self.webView loadHTMLString: [self HTMLStringForSnippet: model.body] baseURL: nil];
Run Code Online (Sandbox Code Playgroud)
其中model.body只包含<p/>元素,并将其-HTMLStringForSnippet:包装到格式良好的HTML中.在我的测试中,我依靠这个问题的答案来通过JavaScript检索正文的HTML内容:
- (void)testCorrectHTMLLoadedInWebView {
UIWebView *bodyView = controller.webView;
NSString *bodyHTML = [bodyView stringByEvaluatingJavaScriptFromString: @"document.body.innerHTML"];
STAssertEqualObjects(bodyHTML, model.body, @"Model body should be used for the web view content");
}
Run Code Online (Sandbox Code Playgroud)
虽然我可以通过单步执行UIWebView正确创建的代码并传递正确的HTML -loadHTMLString:baseURL:,但在测试中bodyHTML是空的.那么我需要做些什么才能看到我期望并之前传递给Web视图的实际内容?
UIWebView渲染需要一段时间,因此问题可能是您在完全加载之前访问内容.
Hook on UIWebViewDelegate的webViewDidFinishLoad:方法确保内容准备就绪.
更新:也许WebViewJavascriptBridge会带来一些帮助.
| 归档时间: |
|
| 查看次数: |
1683 次 |
| 最近记录: |