calabash-Android - несколько экземпляров одного и того же RadioButton - как утверждать?

Я тестирую форму для Android (xamarin).
Мой скрипт ищет радиокнопку с меткой "Зарегистрировано". Он находит и выполняет действие. Однако есть еще один экземпляр радиокнопки с меткой "Зарегистрировано", который находится несколькими строками ниже. 1-й экземпляр. Скрипт огурца всегда находит только первый, поэтому скрипт не работает.

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

Когда я делаю запрос («RadioButton»), он возвращает только один переключатель, так как в форме код C # просто создает экземпляр другого экземпляра одного RadioButton. Мы не хотим менять код, если это необходимо, поэтому мне было интересно, есть ли в Cucumber/Calabash игнорирование первого экземпляра и выполнение действий во втором экземпляре? Спасибо.


person Graeme Phillips    schedule 22.04.2015    source источник


Ответы (1)


Если нужный элемент находится внутри другого элемента, вы можете использовать синтаксис запроса для объединения локаторов. например

query(ListView index: 1 * RadioButton)

Используя это, вы можете найти тот, который вы хотите.

При этом query("RadioButton") должен возвращать два элемента, если в данный момент на экране их два. То, как работает метод запроса, не должно заботиться о том, является ли это одним и тем же элементом в коде С#. Если элемент отсутствует на экране, запрос не вернет его, поэтому вам может потребоваться прокрутка вниз/вперед и т. д.

person alannichols    schedule 24.04.2015
comment
привет, Алан, огромное спасибо за ответ... Я выполнил запрос (RadioButton, :contentDescription), он вернул массив от 0 до 5 элементов contentDescription и их stringName. Теперь все, что мне нужно сделать, это написать функцию и пользовательское определение шага ..., которое я разместил в новом вопросе или «мире боли», поскольку я немного нуб, занимаюсь этим всего несколько недель! - person Graeme Phillips; 24.04.2015