我的应用程序中有一个webview,但我需要进行一些UI测试,但是我无法找到正确实现测试的文本字段元素。有谁有想法吗?谢谢。
答案 0 :(得分:2)
您必须将HTML元素公开给Accessibility。对于文本字段,您可以这样做。
<div id="text-input">Super</div>
<input type="text" aria-labelledby="text-input" value="empty" />
这是您的测试的样子。
func testExample()
{
let
textField = app.webViews.textFields["Super"]
textField.tap()
let before = textField.value as? String
XCTAssertEqual(before, "empty")
// This is strange but without this sleep typeText method doesn't work
sleep(1)
textField.typeText("lorem ipsum")
let after = textField.value as? String
XCTAssertEqual(after, "emptylorem ipsum")
}
通常,将HTML元素暴露给辅助功能是一个困难的领域。你可以找到很多例子here。您还可以查看list of supported elements。祝你好运。
答案 1 :(得分:0)
如果您在WKWebview实例的输入中具有占位符或文本值,则只需执行
let app = XCUIApplication()
...
let webViewsQuery = app.webViews
let textfield1 = webViewsQuery.textFields["account email"]
viewExists = textfield1(timeout: 1.0)
if viewExists {
textfield1.tap()
sleep(1) // wait for keyboard
textfield1.typeText("populated email value")
let textfield2 = webViewsQuery.secureTextFields["Password"] // for password input type
textfield2.tap()
sleep(1) // wait for keyboard
textfield2.typeText("populated password")
}