是否可以在webview中XCTest文本字段?

问题描述:

我在我的应用程序中有一个webview,但我需要做一些UI测试,但是我无法找到正确实现我的测试的文本字段元素。有人有什么主意吗?谢谢。是否可以在webview中XCTest文本字段?

您必须将您的HTML元素公开到辅助功能。对于文本字段,您可以这样做。

<div id="text-input">Super</div> 
<input type="text" aria-labelledby="text-input" value="empty" /> 

您应该看到在辅助功能检查 Accessibility inspector preview

这是您的测试可能看起来怎么样这样的事情。

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。祝你好运。