iphone UITesting кнопка, которая является номером - PullRequest
0 голосов
/ 11 февраля 2012

Я пробую UITesting для iPhone, и я подумал, что для запуска моих первых тестов я воспользуюсь простым калькулятором rpn из лекции 2 в cs193p-классе Стэнфорда, чтобы запустить мои первые тесты.следует

var target = UIATarget.localTarget();

target.frontMostApp().mainWindow().buttons()["3"].tap();
target.frontMostApp().mainWindow().buttons()["Enter"].tap();
target.frontMostApp().mainWindow().buttons()["4"].tap();
target.frontMostApp().mainWindow().buttons()["/"].tap();

var display = target.frontMostApp().mainWindow().staticTexts()[1].value();
if (display == "0.75") {
    UIALogger.logPass("3 E 4 /");
} else {
    UIALogger.logFail("3 E 4 /");
}

Однако скрипт запускает sin enter cos / В журнале редактора он показывает

target.frontMostApp().mainWindow().buttons()[3].tap();
target.frontMostApp().mainWindow().buttons()["Enter"].tap();
target.frontMostApp().mainWindow().buttons()[4].tap();
target.frontMostApp().mainWindow().buttons()["/"].tap();

Так что инструменты каким-то образом преобразуют мою строку «3» в индекс 3, а затемнажав на третью кнопку.

Чтобы я мог вызывать кнопки по их порядковому номеру, но я бы предпочел вызывать их по их тексту.

1 Ответ

1 голос
/ 11 февраля 2012

Использование скобок для доступа к UIAElementArray ограничивает то, что числа обрабатываются как индексы.8- (.

Вместо этого просто добавьте firstWithName():

target.frontMostApp().mainWindow().buttons().firstWithName("3").tap();

См. Ссылка на класс UIAElementArray

...