Javascript 尝试访问工具栏按钮为零
我一直在为我正在编写的应用程序编写一些自动化脚本,并一直在尝试让以下功能正常工作。我最终能够正确地完成它,但是使用了一些不同的代码。在我看来,以下两个代码片段是相同的,但只有第一个似乎有效。我想了解一下原因。是我的JavaScript技能不够好,还是UIAutomation特有的Javascript 尝试访问工具栏按钮为零,javascript,ui-automation,Javascript,Ui Automation,我一直在为我正在编写的应用程序编写一些自动化脚本,并一直在尝试让以下功能正常工作。我最终能够正确地完成它,但是使用了一些不同的代码。在我看来,以下两个代码片段是相同的,但只有第一个似乎有效。我想了解一下原因。是我的JavaScript技能不够好,还是UIAutomation特有的 // Define some global variables -- THIS WORKS var target = UIATarget.localTarget(); var app = target.frontMos
// Define some global variables -- THIS WORKS
var target = UIATarget.localTarget();
var app = target.frontMostApp().mainWindow();
var toolbarButtons = app.toolbar().buttons();
toolbarButtons["Back"].tap();
这失败了
var target = UIATarget.localTarget();
var app = target.frontMostApp().mainWindow();
var backButton = app.toolbar().buttons()["Back"];
backButton.tap();
第二个失败的代码片段说,我得到了按钮的nil值。如果有人能帮我指出第二种方法不正确的原因,我将不胜感激。我不得不多次点击后退按钮,backButton.tap看起来更干净
更新:下面是失败的确切代码
// Define some global variables
var target = UIATarget.localTarget();
var app = target.frontMostApp().mainWindow();
// List everything we see
UIALogger.logStart("Logging app...");
app.logElementTree();
UIALogger.logPass();
// Function for moving into and out of every home screen option
var homeToViewAndBack = function() {
var backButton = app.toolbar().buttons()["Back"];
// Let's go down the list of buttons
app.buttons()["VideoHomeButton"].tap();
backButton.tap();
UIALogger.logPass("Basic navigation works.");
}
// Call our functions
homeToViewAndBack();
此给定错误脚本引发了未捕获的JavaScript错误:无法对无效元素执行操作:来自target.frontMostApp.mainWindow.toolbar.buttons[返回]的UIAElementNil。然而,上面第一个代码片段中的代码工作起来很有魅力
为了再次确认,我将“后退”按钮上的文本更改为“主页”,并尝试了以下代码…第一次调用“后退”按钮有效,但第二次失败:
var homeToViewAndBack = function() {
var toolbarButtons = app.toolbar().buttons();
var backButton = app.toolbar().buttons()["Home"];
// Let's go down the list of buttons
app.buttons()[0].tap();
toolbarButtons["Home"].tap();
app.buttons()[1].tap();
backButton.tap();
UIALogger.logPass("Basic navigation works.");
}
运行你的场景模型,对我来说都成功了。您能提供一个关于这个问题的实时/JSFIDLE示例吗?运行您的场景的模型,对我来说都成功了。您能提供一个关于这个问题的实时/jsfiddle示例吗?