Как обработать оповещение iPhone с 2 кнопками (хотите нажать кнопку не по умолчанию) - PullRequest
0 голосов
/ 15 февраля 2011

Я автоматизирую приложение для iPhone
Когда я набираю почтовый идентификатор в поле TO: и нажимаю на кнопку отправить, я получаю уведомление с подтверждением с двумя кнопками
«Отмена» & »Отправить ".
По умолчанию кнопка" отмена ".Я не могу нажать на кнопку отправить.
Вот фрагмент кода, который я использовал.Пожалуйста, помогите мне с этим

// Получить ручки

window = UIATarget.localTarget().frontMostApp().mainWindow();

target = UIATarget.localTarget();

app = target.frontMostApp();

buttons = window.buttons();

target.delay(2);

// нажмите кнопку отправки на панели навигации

app.navigationBar().buttons()["Send"].tap(); 

target.delay(2);

// Обработчик оповещений

UIATarget.onAlert = function onAlert(alert)

{
   //Unable to enter this portion of the code

   target.delay(2);

   var alerttitle = alert.name();

   UIALogger.logMessage("Alert with title: '"+alerttitle+"' encountered! ");
}

Элемент управления вообще не входит в обработчик.

Ответы [ 3 ]

0 голосов
/ 18 февраля 2011

Существует временная работа, которая, как я полагаю, не является наилучшим подходом, но может способствовать продолжению процесса

Решение: нажать на кнопку «Отправить», используя приблизительные координаты кнопки относительноэкран.

Я использовал следующий способ для достижения этого.

//Get the handles

window = UIATarget.localTarget().frontMostApp().mainWindow();

target = UIATarget.localTarget();

app = target.frontMostApp();

//Get the handle for the alert

var alertHandle = app.alert();

//Do a log Element tree for the alert to get the coordinates, height and width of the alert

alertHandle.logElementTree();

//Decide the coordinates of the point based on the value of the alert coordinates

target.tap({x:50,y:150});
0 голосов
/ 06 сентября 2011

@ kiran - Когда мы печатаем logElementTree, кнопки отображаются с именем или нулем. В вашем случае, если вы не можете нажать на кнопку с именем, вы можете сделать это, ссылаясь на форму массива. Поскольку все элементы на экране выбраны в виде массива.

В общем случае кнопки на экране расположены в виде массива, начиная с 0 и т. Д. До количества кнопок. В вашем случае вы можете ссылаться на кнопку отправки как кнопку [0] или любой другой индекс, который вы должны проверить на своей стороне.

0 голосов
/ 15 февраля 2011
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message: @"some text"
                                                           delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];

[alert show];

[alert release];


- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
{
    if(buttonIndex == [alertView cancelButtonIndex])
        return;


}

используя индекс кнопки, вы можете отслеживать, какая кнопка просмотра предупреждений была нажата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...