gpt4 book ai didi

swift - XCTest() 获取 XCUIElement 的父级

转载 作者:可可西里 更新时间:2023-11-01 00:55:55 28 4
gpt4 key购买 nike

这是我尝试在终端窗口中输入 po print(XCUIApplication().debugDescription) 时打印应用程序的元素结构时的示例

tables, (address code like 0x00006b), traits: (some random number)
cells, (address code), traits: (random number)
others, (address code), traits: (random number), label: "Other Value"
buttons, (address code), traits: (random number), identifier: "primaryButton", label: "Press ME"

所以,基本上,如果我想访问 others 值,我只需要通过它的标签进行访问即可:

let cellsValue = XCUIApplication().tables.cells.otherElements.staticTexts["其他值"];

但是,问题是 staticTexts 可以随时间更改,所以我的解决方案是我可以访问具有特定标识符的元素,例如:

let btnPrimary = XCUIApplication().tables.buttons["primaryBtn"];

并调用它的父元素(在本例中为单元格元素),例如:

let tableParent = btnPrimary.parent() 

这样我就可以使用这个轻松访问该元素:

let otherElement = tableParent.otherElements.firstMatch.label

但是 parent() 函数不存在,那么我怎样才能访问元素的父元素呢?

最佳答案

我找到了解决这个问题的方法,我把它贴在这里,以防有人遇到和我一样的问题。因此,您不必根据具有唯一标识符的子项找到父项,您只需要根据 XCTest() 给出的内容找到具有该唯一标识符的元素即可。所以基本上,你必须这样做:

let parent = XCUIApplication().tables.cell.containing(.button, "primaryButton")

并通过以下方式访问他们的 child :

let otherValue = parent.otherElements.firstMatch()

这将返回第一个元素具有 other 类型,如果你想访问元素索引,调用 element(boundBy: ) 方法!

关于swift - XCTest() 获取 XCUIElement 的父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48462368/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com