gpt4 book ai didi

ios - XCUIApplication的通用点击功能

转载 作者:行者123 更新时间:2023-12-01 17:48:31 25 4
gpt4 key购买 nike

我们正在尝试从UIAutomation迁移到XCUITests。
对于UIAutomation,我们想出了一个方便的“tapOnName”函数,该函数通过整个子元素树进行爬网,并在第一个匹配项上点击该元素。

function log(msg) {
UIALogger.logDebug(msg);
}
//recursive function crawling thru an elements hierarchy
//and tapping on the first match of accessibilityIdentifier
//or button text
function tapOnNameWithRoot(name,el) {
if (el.name()==name && el.isVisible()) {
log("tap on itt!!!")
el.tap();
return true;
}
if (el.toString()=="[object UIAButton]" && el.label()==name) {
log("tap on Button!!!")
el.tap();
return true;
}
var elements=el.elements();
if (elements===null || elements===undefined) {
log("elements null or undefined for:"+el.toString());
return false;
}
for(var i=0,len=elements.length ;i<len;i++) {
if (tapOnNameWithRoot(name,elements[i])) {
return true;
}
}
return false;
}
var win = UIATarget.localTarget().frontMostApp().mainWindow();
//for ex taps on a button with the text "pushme" in the
//main UIWindow
tapOnNameWithRoot("pushme",win);

没问题:可以使用XCUIApplication实现相同的功能吗?

最佳答案

XCTest中对此功能有简写支持。

要从任何元素中点击第一个匹配项,可以获取所有元素并点击第一个:

let app = XCUIApplication()
let element = app.descendentsMatchingType(.Any)["someIdentifier"]
element.tap()

如果您知道元素将是哪种类型,最好先按该类型进行过滤:
let app = XCUIApplication()
let element = app.buttons["someIdentifier"]
element.tap()

关于ios - XCUIApplication的通用点击功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39296016/

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