我的应用程序中有一个 webview,但我需要做一些 UI 测试,但是我无法找到文本字段元素来正确实施我的测试。有人有什么主意吗?谢谢你。
问问题
4121 次
2 回答
3
您必须将您的 HTML 元素公开给可访问性。对于文本字段,您可以这样做。
<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 元素暴露给 Accessibility 是一个困难的领域。你可以在这里找到很多例子。您还可以查看支持的元素列表。祝你好运。
于 2017-10-05T19:48:53.107 回答
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")
}
于 2019-07-05T10:05:42.597 回答