gpt4 book ai didi

iphone - 为什么我无法使用 UI 自动化脚本访问 iPhone 应用程序中的后退按钮?

转载 作者:行者123 更新时间:2023-12-03 19:04:38 25 4
gpt4 key购买 nike

我有一个简单的函数,应该检查 View 是否位于主界面,如果不是,则将其带到主界面:

function returnHome() {
if (UIATarget.localTarget().frontMostApp().navigationBar().name() == mainTitle) return true;

// set tab bar to calculations
UIALogger.logMessage("Set tab bar to main.");
if (UIATarget.localTarget().frontMostApp().tabBar().selectedButton().name() != mainTabName) {
UIATarget.localTarget().frontMostApp().tabBar().buttons()[mainTabName].tap();
}

// go back to the home
UIALogger.logMessage("Go back to home.");
var backButton = UIATarget.localTarget().frontMostApp().mainWindow().buttons()["Back"];
if (backButton.isValid()) {
backButton.tap();
} else {
UIALogger.logError("Could not find 'Back' button!");
}
}

现在,我无法克服错误“找不到‘后退’按钮!”。它就在那里,在左边的角落里,盯着我, mock 我!

UIATarget.localTarget().frontMostApp().logElementTree() 给了我以下树:

2) UIAApplication [name:MyApplication value:(null) rect:{{x:0, y:20}, {width:320, height:460}}]
3) UIAWindow [name:(null) value:(null) rect:{{x:0, y:0}, {width:320, height:480}}]
4) UIAImage [name:(null) value:(null) rect:{{x:0, y:108}, {width:320, height:367}}]
4) UIANavigationBar [name:(null) value:(null) rect:{{x:0, y:64}, {width:320, height:44}}]
5) UIASegmentedControl [name:(null) value:(null) rect:{{x:5, y:71}, {width:310, height:30}}]
6) UIAButton [name:SementedControllerTagC, 3 of 3 value:(null) rect:{{x:212, y:71}, {width:103, height:30}}]
6) UIAButton [name:SementedControllerTagB, 2 of 3 value:(null) rect:{{x:109, y:71}, {width:102, height:30}}]
6) UIAButton [name:SementedControllerTagA, 1 of 3 value:1 rect:{{x:5, y:71}, {width:103, height:30}}]
4) UIATableView [name:Empty list value:rows 1 to 2 of 3 rect:{{x:15, y:169}, {width:290, height:247}}]
5) UIAButton [name:XYZ value:(null) rect:{{x:20, y:121}, {width:280, height:46}}]
5) UIATableGroup [name:SomeText value:(null) rect:{{x:15, y:169}, {width:290, height:50}}]
6) UIAStaticText [name:SomeText value:(null) rect:{{x:25, y:197}, {width:270, height:22}}]
5) UIATableCell [name:A value:(null) rect:{{x:15, y:219}, {width:290, height:50}}]
6) UIAElement [name:B value:(null) rect:{{x:15, y:219}, {width:247, height:50}}]
6) UIAButton [name:more info, A value:(null) rect:{{x:262, y:219}, {width:43, height:50}}]
5) UIATableCell [name:X value:(null) rect:{{x:15, y:269}, {width:290, height:50}}]
6) UIAElement [name:Y value:(null) rect:{{x:15, y:269}, {width:247, height:50}}]
6) UIAButton [name:more info, B value:(null) rect:{{x:262, y:269}, {width:43, height:50}}]
4) UIAButton [name:(null) value:(null) rect:{{x:85, y:339}, {width:150, height:32}}]
4) UIAImage [name:(null) value:(null) rect:{{x:0, y:334}, {width:320, height:97}}]
4) UIAStaticText [name:SomeText value:(null) rect:{{x:45, y:377}, {width:189, height:21}}]
4) UIAStaticText [name:SomeText value:(null) rect:{{x:45, y:406}, {width:230, height:21}}]
4) UIAStaticText [name:SomeText value:(null) rect:{{x:234, y:377}, {width:41, height:21}}]
4) UIAStaticText [name:(null) value:(null) rect:{{x:0, y:0}, {width:0, height:21}}]
4) UIAStaticText [name:(null) value:(null) rect:{{x:45, y:377}, {width:230, height:21}}]
4) UIAStaticText [name:(null) value:(null) rect:{{x:45, y:406}, {width:230, height:21}}]
4) UIANavigationBar [name:mainNavigationBar value:(null) rect:{{x:0, y:20}, {width:320, height:44}}]
5) UIAStaticText [name:mainNavigationBar value:(null) rect:{{x:108, y:28}, {width:105, height:27}}]
5) UIAButton [name:Back value:(null) rect:{{x:5, y:27}, {width:49, height:30}}]
4) UIATabBar [name:(null) value:(null) rect:{{x:0, y:431}, {width:320, height:49}}]
5) UIAButton [name:tab1 value:1 rect:{{x:2, y:432}, {width:103, height:48}}]
5) UIAButton [name:tab2 value:(null) rect:{{x:109, y:432}, {width:102, height:48}}]
5) UIAButton [name:tab3 value:(null) rect:{{x:215, y:432}, {width:103, height:48}}]

日志清楚地显示了“后退”按钮,但我没有得到正确的引用。有人能在这里指出正确的方向吗?难道我做错了什么?仅供引用,我尝试从 frontMostApp()、mainWindow() 和 navigationBar() 访问buttons()。全部失败。

最佳答案

“后退”按钮不是窗口的直接子级,而是导航栏。尝试使用以下代码访问它:

   var backButton = UIATarget.localTarget().frontMostApp().mainWindow().navigationBar().buttons()["Back"]; 

关于iphone - 为什么我无法使用 UI 自动化脚本访问 iPhone 应用程序中的后退按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3872447/

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