使用Xcode UI测试测试UIWebView

前端之家收集整理的这篇文章主要介绍了使用Xcode UI测试测试UIWebView前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用XCTest Framework和 Xcode 7 GM进行新的 Xcode UI测试.我有一个简单的UIWebView应用程序(它只是一个带有Web视图和按钮的导航控制器视图控制器),我想检查以下场景:

> Web View加载页面www.example.com
>用户点击按钮
> Web View使用URL加载一些页面:www.example2.com

我想在按下按钮后检查UIWebView中加载了哪个页面.这是否可以通过UI测试立即实现?

其实我得到这样的网页视图:

let app:XCUIApplication = XCUIApplication()
let webViewQury:XCUIElementQuery = app.descendantsMatchingType(.WebView)
let webView = webViewQury.elementAtIndex(0)

解决方法

您将无法分辨正在加载的页面,就像在显示的实际URL中一样.但是,您可以在屏幕上检查断言内容. UI Testing为 links that works great with both UIWebView and WKWebView提供了XCUIElementQuery.

请记住,页面不会同步加载,因此您必须使用wait for the actual elements to appear.

let app = XCUIApplication()
app.launch()

app.buttons["Go to Google.com"].tap()

let about = self.app.staticTexts["About"]
let exists = NSPredicate(format: "exists == 1")
expectationForPredicate(exists,evaluatedWithObject: about,handler: nil)

waitForExpectationsWithTimeout(5,handler: nil)
XCTAssert(about.exists)

XCTAssert(app.staticTexts["Google Search"].exists)
app.links["I'm Feeling Lukcy"].tap()

如果你想深入研究代码,还有一个working test host和两个链接.

猜你在找的iOS相关文章