Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Проверка о незаполненности редактируемого поля с помощью Robotium


(Игорь Кожин) #1

Добрый день! Подскажите пожалуйста, как проверить с помощью Robotiuma, что редактируемое поле, доступное в данный момент на экране пустое (т.е. ничем не заполнено)? Приложение написано для Android.

Я знаю, что можно проверить наличие какого-либо текста на экране с помощью:

    assertTrue(solo.waitForText("Текст на экране"));

А как проверить что определенное поле пустое, я не знаю.


(Yuriy Rumyantsev) #2

первое, что пришло на ум - assertTrue(solo.waitForText(""));


(Игорь Кожин) #3

assertTrue(solo.waitForText(""));

Нет, данная проверка сработает всегда, а значит нечего не проверит.


(Yuriy Rumyantsev) #4

тогда, идти через solo.getText();


(Игорь Кожин) #5

Не понял, как именно можно сделать через solo.getText(); ? Если указать

solo.getText("");

, то это будет работать также как

assertTrue(solo.waitForText(""));


(Sergey Korol) #6
TextView textView = (TextView) solo.getView(viewId);
assertTrue(textView.getText().isEmpty());

(Игорь Кожин) #7

А что должно быть внутри скобок isEmpty()?


(Sergey Korol) #8

Ну как бы ничего.
Update: изменил референс на адроидовский, изначально был на jdk.


(Игорь Кожин) #9

Я когда пытаюсь указать подобную проверку

    TextView textView = (TextView) solo.getView("my_id");
    assertTrue(textView.getText().isEmpty());

у меня isEmpty выделяет красным и пишет

Cannot resolve method ‘isEmpty()’

Что я делаю не так?


(Sergey Korol) #10

Используете старую версию API? isEmpty() добавлен в 9й версии. В качестве аналога могу лишь предложить использовать TextUtils.

Либо делать проверку в лоб:

textView.getText().length() == 0 // or
textView.getText().equals("")

(Yuriy Rumyantsev) #11

получить текущий текст элемента(редактируемое поле.getText()) и сравнить с эталоном.isEmpty() или захардкодить


(Игорь Кожин) #12

Спасибо за советы. Мне помог следующий код:

    TextView textView = (TextView) solo.getView("my_id");
    assertTrue(textView.getText().toString().isEmpty());