这是我想要做的。
1) 我有一个 alertView 询问“你在哪里购物?”。此警报有两个按钮跳过/取消和继续。2)通过单击跳过按钮,它会弹出另一个标题为“附近列表:”的警报视图,并显示附近商店的 tableView 列表,用户可以从中选择任何商店。这个只有一个取消按钮。(取消按钮关闭警报并返回主页)
我的问题是每当我试图绕过默认处理程序时
UIATarget.onAlert = function onAlert(alert) {
var title = alert.name();
UIALogger.logWarning("Alert with title ’" + title + "’ encountered!");
if (title == "Where are you shopping?") {
alert.buttons()["Skip"].tap();
return true; // bypass default handler
}
return false;
}
这会点击跳过按钮并弹出第二个警报,并且在第二个警报上点击默认按钮,即使我没有为此编写任何代码。
我想点击第一个警报的跳过按钮,然后点击第二个警报的一个单元格。所以我尝试了下面的代码,但它仍然会在不点击单元格的情况下关闭第二个警报。不知道该怎么做。我是初学者,所以非常感谢任何帮助。
var target = UIATarget.localTarget();
var app = target.frontMostApp();
var window = app.mainWindow();
var testName = "Test 1";
UIALogger.logStart(testName);
var buttonScan = target.frontMostApp().windows()[0].buttons()["scan btn"];
//UIATarget.localTarget().pushTimeout(1);
target.delay(1);
//app.logElementTree();
if (buttonScan.isValid()) {
buttonScan.tap();
// first alert box "Where are you shopping"
UIATarget.onAlert = function onAlert(alert) { // this is never called
var title = alert.name();
UIALogger.logWarning("Alert with title ’" + title + "’ encountered!");
if (title == "Where are you shopping?") {
alert.buttons()["Skip"].tap();
return true; // bypass default handler
}
return false;
}
// second alert box "Nearby listings:"
UIATarget.onAlert = function onAlert(alert) {
var title = alert.name();
UIALogger.logMessage( "Dismiss the keyboard" + title );
UIALogger.logWarning("Alert2 with title ’" + title + "’ encountered!");
if (title == "Nearby listings:") {
return true; // bypass default handler
}
return false; // use default handler that is dismissing the alert
}
UIALogger.logPass(testName);
} else {
UIALogger.logFail(testName);
}