无法在模式上的viewController上声明具有相同元素的元素

问题描述 投票:0回答:1

[有一些HITTABLE文本“ exampleText”的viewController。当您点击它时,将使用相同的“ exampleText”(甚至两个具有相同staticTexts“ exampleText”的单元格)打开模式窗口我的意图是通过countHittableElements

来计算那些“ exampleTexts”

但是问题是我的方法在模态以及viewController(在该模态下)上进行元素搜索因此,如果模态上有2个“ exampleTexts”并尝试使用countHittableElements(name:“ exampleTexts”),我总是会得到一个额外的1个元素,而我的计数会失败。

func countHittableElements(name: String) -> Int {
    return filterHittableElements(name: name).count
}

func getElements(name: String) -> XCUIElementQuery {
    let predicate = NSPredicate(format: "label CONTAINS[c] %@", name)
    return application.cells.staticTexts.containing(predicate)
}

func filterHittableElements(name: String) -> [XCUIElement] {
    let all = getElements(name: name).allElementsBoundByAccessibilityElement
    let onlyfilt = all.filter { $0.isHittable }
    return onlyfilt
}

当在其上方打开模式时,是否有办法以某种方式忽略viewController内容?

swift accessibility xctest xcuitest
1个回答
0
投票

我会评论(如果需要)(需要50次),因为这更多是评论/问题。

是否有某些原因要计算可见元素而不是计算用于创建可见元素的数据?乍一看似乎效率不高。

此外,您可能可以编写条件来检查原始ViewController在包含元素之前是否包含该元素。

© www.soinside.com 2019 - 2024. All rights reserved.