我将应用生成的内容放入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>"
因此它进入了网络视图:
[self.webView loadHTMLString: [self HTMLStringForSnippet: model.body] baseURL: nil];
其中model.body
仅包含<p/>
元素,而-HTMLStringForSnippet:
将其包含在格式良好的HTML中。在我的测试中,我依靠答案to this question通过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");
}
虽然我可以通过单步执行UIWebView
来正确创建并在-loadHTMLString:baseURL:
中传递正确的HTML,但在测试中bodyHTML
为空。那么,我需要做些什么来查看我期望的以及之前传递给Web视图的实际内容?
答案 0 :(得分:5)
UIWebView
渲染需要一段时间,因此问题可能是您在内容完全加载之前访问内容。
挂钩UIWebViewDelegate
的{{1}}方法以确保内容已准备就绪。
更新: 也许WebViewJavascriptBridge会带来一些帮助。