1

这是我想要做的。

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);

    }
4

1 回答 1

2

onAlert在获取UITarget.

例如:

// 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; 
}
    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();

   //alert should happen here
于 2013-06-21T13:47:27.527 回答