iphone UITesting кнопка, которая является номером
Я пробую UITesting для iPhone, и я подумал, что для запуска своих первых тестов я воспользуюсь простым калькулятором rpn из лекции 2 из cs193p класса Стэнфорда iTunes U.
мой javascript выглядит следующим образом
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, потому что в журнале редактора он показывает
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 ответ
Решение
Использование скобок для доступа к UIAElementArray ограничивает то, что числа обрабатываются как индексы. 8-(.
Вместо этого просто добавьте firstWithName()
:
target.frontMostApp().mainWindow().buttons().firstWithName("3").tap();