Skip to content

Commit 9408a0e

Browse files
committed
Update core library version.
Update README.md, remove outdated info and add template reference. Add logging of ComboBox and checkbox values. Add Polish and Ukrainian localization.
1 parent 6bae8b7 commit 9408a0e

File tree

10 files changed

+138
-30
lines changed

10 files changed

+138
-30
lines changed

README.md

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,18 @@ We use interfaces where is possible, so you can implement your own version of ta
1717

1818
### Quick start
1919

20-
1. To start work with this package, simply add the dependency to your pom.xml:
20+
To start the project using Aquality.Selenium framework, you can [download our template BDD project by this link.](https://github.com/aquality-automation/aquality-appium-mobile-java-template)
21+
22+
Alternatively, you can follow the steps below:
23+
24+
1. Add the dependency to your pom.xml:
2125
```
2226
<dependency>
2327
<groupId>com.github.aquality-automation</groupId>
2428
<artifactId>aquality-appium-mobile</artifactId>
25-
<version>3.0.0-beta</version>
26-
</dependency>
27-
<dependency>
28-
<groupId>org.seleniumhq.selenium</groupId>
29-
<artifactId>selenium-java</artifactId>
30-
<version>4.1.0</version>
29+
<version>3.0.x</version>
3130
</dependency>
3231
```
33-
Note: adding selenium dependency is a temporary solution to avoid version conflict caused by some appium dependencies; to be fixed on the release version.
3432

3533
2. Configure the path to your application at settings.json:
3634
- Copy [settings.json](./src/main/resources/settings.json) into the resources directory of your project.
@@ -203,8 +201,6 @@ public class DemoTest {
203201
}
204202
```
205203
206-
You can find an example in [aquality-appium-mobile-java-template](https://github.com/aquality-automation/aquality-appium-mobile-java-template) repository.
207-
208204
### Devices
209205
210206
Our library allows you to run tests on different devices and store their settings (like udid, name, etc.) in JSON files.

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,13 +172,13 @@
172172
<dependency>
173173
<groupId>com.github.aquality-automation</groupId>
174174
<artifactId>aquality-selenium-core</artifactId>
175-
<version>2.0.3</version>
175+
<version>2.0.4</version>
176176
</dependency>
177177

178178
<dependency>
179179
<groupId>io.appium</groupId>
180180
<artifactId>java-client</artifactId>
181-
<version>8.1.1</version>
181+
<version>8.2.0</version>
182182
</dependency>
183183

184184
<dependency>

src/main/java/aquality/appium/mobile/elements/CheckBox.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,9 @@ public void uncheck() {
2727
setState(false);
2828
}
2929

30-
@Override
31-
public boolean isChecked() {
32-
logElementAction("loc.checkbox.get.state");
33-
return super.isChecked();
34-
}
35-
3630
@Override
3731
public void toggle() {
38-
setState(!super.isChecked());
32+
setState(!getState());
3933
}
4034

4135
/**
@@ -45,7 +39,7 @@ public void toggle() {
4539
*/
4640
private void setState(boolean state) {
4741
logElementAction("loc.setting.value", state);
48-
if (state != super.isChecked()) {
42+
if (state != getState()) {
4943
click();
5044
}
5145
}

src/main/java/aquality/appium/mobile/elements/CheckableElement.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ protected CheckableElement(By loc, String nameOf, ElementState stateOf) {
1616
}
1717

1818
public boolean isChecked() {
19+
logElementAction("loc.checkable.is.checked");
20+
boolean state = getState();
21+
logElementAction("loc.checkable.state", state);
22+
return state;
23+
}
24+
25+
protected boolean getState()
26+
{
1927
return doWithRetry(() -> {
2028
String checked = getElement().getAttribute(Attributes.CHECKED.toString());
2129
if (checked == null || checked.equals("")) {

src/main/java/aquality/appium/mobile/elements/ComboBox.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,32 +95,44 @@ public void clickAndSelectByValue(String value) {
9595

9696
@Override
9797
public String getSelectedValue() {
98-
return doWithRetry(
98+
logElementAction("loc.combobox.getting.selected.text");
99+
String text = doWithRetry(
99100
() -> new Select(getElement()).getFirstSelectedOption().getAttribute(Attributes.VALUE.toString()));
101+
logElementAction("loc.combobox.selected.text", text);
102+
return text;
100103
}
101104

102105
@Override
103106
public String getSelectedText() {
104-
return doWithRetry(() -> new Select(getElement()).getFirstSelectedOption().getText());
107+
logElementAction("loc.combobox.getting.selected.value");
108+
String value = doWithRetry(() -> new Select(getElement()).getFirstSelectedOption().getText());
109+
logElementAction("loc.combobox.selected.value", value);
110+
return value;
105111
}
106112

107113
@Override
108114
public List<String> getValues() {
109115
logElementAction("loc.combobox.get.values");
110-
return doWithRetry(() ->
116+
List<String> values = doWithRetry(() ->
111117
new Select(getElement()).getOptions()
112118
.stream()
113119
.map(option -> option.getAttribute(Attributes.VALUE.toString()))
114120
.collect(Collectors.toList()));
121+
logElementAction("loc.combobox.values",
122+
values.stream().map(value -> String.format("'%s'", value)).collect(Collectors.joining(", ")));
123+
return values;
115124
}
116125

117126
@Override
118127
public List<String> getTexts() {
119128
logElementAction("loc.combobox.get.texts");
120-
return doWithRetry(() ->
129+
List<String> values = doWithRetry(() ->
121130
new Select(getElement()).getOptions()
122131
.stream()
123132
.map(WebElement::getText)
124133
.collect(Collectors.toList()));
134+
logElementAction("loc.combobox.texts",
135+
values.stream().map(value -> String.format("'%s'", value)).collect(Collectors.joining(", ")));
136+
return values;
125137
}
126138
}

src/main/resources/localization/be.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,21 @@
77
"loc.application.android.activity.start": "Стартуем '%1$s' актыўнасць Android праграмы ў пакеце '%2$s'",
88
"loc.button": "Кнопка",
99
"loc.checkbox": "Чэкбокс",
10-
"loc.checkbox.get.state": "Атрымліваем стан",
10+
"loc.checkable.is.checked": "Атрымліваем стан",
11+
"loc.checkable.state": "Стан: [%s]",
1112
"loc.combobox": "Камбабокс",
13+
"loc.combobox.getting.selected.text": "Атрымліваем выбраны тэкст",
14+
"loc.combobox.getting.selected.value": "Атрымліваем выбранае значэнне",
15+
"loc.combobox.selected.text": "Выбраны тэкст: [%s]",
16+
"loc.combobox.selected.value": "Выбранае значэнне: [%s]",
1217
"loc.combobox.select.by.text" : "Выбіраем значэнне з тэкстам '%s'",
1318
"loc.combobox.select.by.value" : "Выбіраем значэнне '%s'",
1419
"loc.combobox.get.texts": "Атрымліваем спіс тэкстаў опцыяў",
1520
"loc.combobox.get.values" : "Атрымліваем спіс значэнняў",
21+
"loc.combobox.texts": "Спіс тэкстаў опцыяў: [%s]",
22+
"loc.combobox.values": "Спіс значэнняў: [%s]",
1623
"loc.combobox.impossible.to.select.contain.value.or.text" : "Немагчыма выбраць опцыю, якая змяшчае значэнне/тэкст '%1$s' у камбабоксе '%2$s'",
1724
"loc.file.reading_exception" : "Памылка пры чытанні файла: '%s'",
18-
"loc.focusing" : "Факусуемся",
1925
"loc.label" : "Надпіс",
2026
"loc.link" : "Спасылка",
2127
"loc.radio" : "Радыёкнопка",

src/main/resources/localization/en.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,21 @@
77
"loc.application.android.activity.start": "Starting the '%1$s' activity of the Android app at package '%2$s'",
88
"loc.button": "Button",
99
"loc.checkbox": "CheckBox",
10-
"loc.checkbox.get.state": "Getting state",
10+
"loc.checkable.is.checked": "Getting state",
11+
"loc.checkable.state": "State: [%s]",
1112
"loc.combobox": "ComboBox",
13+
"loc.combobox.getting.selected.text": "Getting selected text",
14+
"loc.combobox.getting.selected.value": "Getting selected value",
15+
"loc.combobox.selected.text": "Selected text: [%s]",
16+
"loc.combobox.selected.value": "Selected value: [%s]",
1217
"loc.combobox.select.by.text": "Selecting value by text '%s'",
1318
"loc.combobox.select.by.value": "Selecting value '%s'",
1419
"loc.combobox.get.texts": "Getting option texts array",
1520
"loc.combobox.get.values": "Getting values array",
21+
"loc.combobox.texts": "Option texts: [%s]",
22+
"loc.combobox.values": "Option values: [%s]",
1623
"loc.combobox.impossible.to.select.contain.value.or.text": "It is impossible to select option that contains value/text '%1$s' from combobox '%2$s'",
1724
"loc.file.reading_exception": "Exception while reading file: '%s'",
18-
"loc.focusing": "Focusing",
1925
"loc.label": "Label",
2026
"loc.link": "Link",
2127
"loc.radio": "Radiobutton",
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"loc.application.quit": "Zamykanie aplikacji",
3+
"loc.application.driver.remote": "Ustawianie sterownika aplikacji przy użyciu serwera na adresie '%s'",
4+
"loc.platform.name.wrong": "Platforma '%s' nie jest obsługiwana.",
5+
"loc.application.ready": "Aplikacja na platformie '%1$s' jest gotowa...",
6+
"loc.application.implicit.timeout": "Ustawianie implicit(niejawnego) limitu czasu '%1$s' sek.",
7+
"loc.application.android.activity.start": "Rozpoczęcie aktywności '%1$s' aplikacji Android w pakiecie '%2$s'",
8+
"loc.button": "Przycisk",
9+
"loc.checkbox": "Pole wyboru",
10+
"loc.checkable.is.checked": "Uzyskiwanie stanu",
11+
"loc.checkable.state": "Stan: [%s]",
12+
"loc.combobox": "Pole kombi",
13+
"loc.combobox.getting.selected.text": "Pobieranie zaznaczonego tekstu",
14+
"loc.combobox.getting.selected.value": "Pobieranie wybranej wartości",
15+
"loc.combobox.selected.text": "Wybrany tekst: [%s]",
16+
"loc.combobox.selected.value": "Wybrana wartość: [%s]",
17+
"loc.combobox.select.by.text": "Wybieranie wartości z tekstem '%s'",
18+
"loc.combobox.select.by.value": "Wybieranie wartośc '%s'",
19+
"loc.combobox.get.texts": "Pobieranie listy tekstów opcji",
20+
"loc.combobox.get.values": "Pobieranie listy wartości",
21+
"loc.combobox.texts": "Lista tekstów opcji: [%s]",
22+
"loc.combobox.values": "Lista wartości: [%s]",
23+
"loc.combobox.impossible.to.select.contain.value.or.text": "Wybieranie wartości ze znaczeniem/tekstem '%1$s' w polu kombi '%2$s' nie jest możliwe",
24+
"loc.file.reading_exception": "Błąd podczas odczytu pliku: '%s'",
25+
"loc.label": "Etykieta",
26+
"loc.link": "Link",
27+
"loc.radio": "Przycisk radiowy",
28+
"loc.send.text": "Ustawianie tekstu - '%s'",
29+
"loc.setting.value": "Ustawianie wartości '%s'",
30+
"loc.text.clearing": "Czyszczenie",
31+
"loc.text.field": "Pole tekstowe",
32+
"loc.text.typing": "Wpisywanie '%s'",
33+
"loc.text.focusing": "Skupienie się na polu",
34+
"loc.text.unfocusing": "Usunięcie fokusu z pola",
35+
"loc.text.masked_value": "********",
36+
"loc.action.swipe": "Przesuwanie od współrzędnych (x:%1$s; y:%2$s) do (x:%3$s; y:%4$s)",
37+
"loc.action.swipeLongPress": "Przesuwanie przy użyciu długiego naciśnięcia od współrzędnych (x:%1$s; y:%2$s) do (x:%3$s; y:%4$s)",
38+
"loc.get.center": "Uzyskanie współrzędnych środka elementu",
39+
"loc.center.value": "Współrzędne środka elementu: (x:%1$s; y:%2$s)"
40+
}

src/main/resources/localization/ru.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,21 @@
77
"loc.application.android.activity.start": "Стартуем '%1$s' активность Android приложения в пакете '%2$s'",
88
"loc.button": "Кнопка",
99
"loc.checkbox": "Чекбокс",
10-
"loc.checkbox.get.state": "Получение состояния",
10+
"loc.checkable.is.checked": "Получение состояния",
11+
"loc.checkable.state": "Состояние: [%s]",
1112
"loc.combobox": "Комбобокс",
13+
"loc.combobox.getting.selected.text": "Получаем выбранный текст",
14+
"loc.combobox.getting.selected.value": "Получаем выбранное значение",
15+
"loc.combobox.selected.text": "Выбранный текст: [%s]",
16+
"loc.combobox.selected.value": "Выбранное значение: [%s]",
1217
"loc.combobox.select.by.text": "Выбор значения с текстом '%s'",
1318
"loc.combobox.select.by.value": "Выбор значения '%s'",
1419
"loc.combobox.get.texts": "Получение списка текстов опций",
1520
"loc.combobox.get.values": "Получение списка значений",
21+
"loc.combobox.texts": "Список текстов опций: [%s]",
22+
"loc.combobox.values": "Список значений: [%s]",
1623
"loc.combobox.impossible.to.select.contain.value.or.text": "Не удаётся выбрать значение которое содержит значение/текст '%1$s' в выпадающем списке '%2$s'",
1724
"loc.file.reading_exception": "Исключение при чтении файла: '%s'%n",
18-
"loc.focusing": "Взятие элемента в фокус",
1925
"loc.label": "Надпись",
2026
"loc.link": "Ссылка",
2127
"loc.radio": "Радиокнопка",
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"loc.application.quit": "Закриття програми",
3+
"loc.application.driver.remote": "Налаштування драйвера програми за допомогою сервера за адресою '%s'",
4+
"loc.platform.name.wrong": "Платформа '%s' не підтримується.",
5+
"loc.application.ready": "Програма на платформі '%1$s' готова...",
6+
"loc.application.implicit.timeout": "Встановлення implicit(неявного) часу очікування: '%1$s' сек.",
7+
"loc.application.android.activity.start": "Запуск активності '%1$s' програми Android у пакеті '%2$s'",
8+
"loc.button": "Кнопка",
9+
"loc.checkbox": "Чекбокс",
10+
"loc.checkable.is.checked": "Отримання стану",
11+
"loc.checkable.state": "Стан: [%s]",
12+
"loc.combobox": "Комбобокс",
13+
"loc.combobox.getting.selected.text": "Отримання вибраного тексту",
14+
"loc.combobox.getting.selected.value": "Отримання вибраного значення",
15+
"loc.combobox.selected.text": "Вибраний текст: [%s]",
16+
"loc.combobox.selected.value": "Вибране значення: [%s]",
17+
"loc.combobox.select.by.text" : "Вибір значення за текстом '%s'",
18+
"loc.combobox.select.by.value" : "Вибір значення '%s'",
19+
"loc.combobox.get.texts": "Отримання масиву текстів опцій",
20+
"loc.combobox.get.values" : "Отримання масиву значень",
21+
"loc.combobox.texts": "Список текстів опцій: [%s]",
22+
"loc.combobox.values": "Список значень: [%s]",
23+
"loc.combobox.impossible.to.select.contain.value.or.text" : "Не вдалося вибрати опцію, що містіть значення/текст '%1$s' у комбобоксі '%2$s'",
24+
"loc.file.reading_exception" : "Помилка підчас читання файлу: '%s'",
25+
"loc.label" : "Напис",
26+
"loc.link" : "Посилання",
27+
"loc.radio" : "Радіокнопка",
28+
"loc.send.text" : "Встановлення тексту - '%s'",
29+
"loc.setting.value" : "Встановлення значення '%s'",
30+
"loc.text.clearing" : "Очищення",
31+
"loc.text.field" : "Текстове поле",
32+
"loc.text.typing" : "Введення '%s'",
33+
"loc.text.focusing": "Фокусування на полі",
34+
"loc.text.unfocusing": "Зняття фокусування з поля",
35+
"loc.text.masked_value": "********",
36+
"loc.action.swipe": "Проводимо по екрану від координат (x:%1$s; y:%2$s) до (x:%3$s; y:%4$s)",
37+
"loc.action.swipeLongPress": "Проводимо по екрану за допомогою тривалого натискання від координат (x:%1$s; y:%2$s) до (x:%3$s; y:%4$s)",
38+
"loc.get.center": "Отримання координат центру елемента",
39+
"loc.center.value": "Координати центру елемента: (x:%1$s; y:%2$s)"
40+
}

0 commit comments

Comments
 (0)