Skip to content

Commit 9992faf

Browse files
authored
Add logging of Element property getters +semver: feature (#27)
1 parent 81403a2 commit 9992faf

File tree

10 files changed

+60
-55
lines changed

10 files changed

+60
-55
lines changed

Aquality.Appium.Mobile/src/Aquality.Appium.Mobile/Aquality.Appium.Mobile.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646

4747
<ItemGroup>
4848
<PackageReference Include="Appium.WebDriver" Version="4.1.1" />
49-
<PackageReference Include="Aquality.Selenium.Core" Version="1.1.1" />
49+
<PackageReference Include="Aquality.Selenium.Core" Version="1.2.2" />
5050
</ItemGroup>
5151

5252
</Project>

Aquality.Appium.Mobile/src/Aquality.Appium.Mobile/Elements/CheckableElement.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ public bool IsChecked
1414
get
1515
{
1616
LogElementAction("loc.checkable.is.checked");
17-
return GetState();
17+
var state = GetState();
18+
LogElementAction("loc.checkable.state", state);
19+
return state;
1820
}
1921
}
2022

Aquality.Appium.Mobile/src/Aquality.Appium.Mobile/Elements/ComboBox.cs

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,38 @@ protected internal ComboBox(By locator, string name, ElementState state) : base(
1515
{
1616
}
1717

18-
public string SelectedText => DoWithRetry(() => new SelectElement(GetElement()).SelectedOption.Text);
18+
protected override string ElementType => LocalizationManager.GetLocalizedMessage("loc.combobox");
19+
20+
public string SelectedText
21+
{
22+
get
23+
{
24+
LogElementAction("loc.combobox.getting.selected.text");
25+
var text = DoWithRetry(() => new SelectElement(GetElement()).SelectedOption.Text);
26+
LogElementAction("loc.combobox.selected.text", text);
27+
return text;
28+
}
29+
}
1930

20-
public string SelectedValue => DoWithRetry(() => new SelectElement(GetElement()).SelectedOption.GetAttribute(Attributes.Value));
31+
public string SelectedValue
32+
{
33+
get
34+
{
35+
LogElementAction("loc.combobox.getting.selected.value");
36+
var value = DoWithRetry(() => new SelectElement(GetElement()).SelectedOption.GetAttribute(Attributes.Value));
37+
LogElementAction("loc.combobox.selected.value", value);
38+
return value;
39+
}
40+
}
2141

2242
public IList<string> Texts
2343
{
2444
get
2545
{
2646
LogElementAction("loc.combobox.get.texts");
27-
return DoWithRetry(
28-
() => new SelectElement(GetElement())
29-
.Options.Select(option => option.Text).ToList());
47+
var values = DoWithRetry(() => new SelectElement(GetElement()).Options.Select(option => option.Text).ToList());
48+
LogElementAction("loc.combobox.texts", string.Join(", ", values.Select(value => $"'{value}'")));
49+
return values;
3050
}
3151
}
3252

@@ -35,14 +55,12 @@ public IList<string> Values
3555
get
3656
{
3757
LogElementAction("loc.combobox.get.values");
38-
return DoWithRetry(
39-
() => new SelectElement(GetElement())
40-
.Options.Select(option => option.GetAttribute(Attributes.Value)).ToList());
58+
var values = DoWithRetry(() => new SelectElement(GetElement()).Options.Select(option => option.GetAttribute(Attributes.Value)).ToList());
59+
LogElementAction("loc.combobox.values", string.Join(", ", values.Select(value => $"'{value}'")));
60+
return values;
4161
}
4262
}
4363

44-
protected override string ElementType => LocalizationManager.GetLocalizedMessage("loc.combobox");
45-
4664
public void ClickAndSelectByText(string text)
4765
{
4866
Click();

Aquality.Appium.Mobile/src/Aquality.Appium.Mobile/Elements/Element.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ protected Element(By locator, string name, ElementState state) : base(locator, n
3535

3636
protected override ILocalizedLogger LocalizedLogger => AqualityServices.LocalizedLogger;
3737

38-
protected virtual ILocalizationManager LocalizationManager => AqualityServices.Get<ILocalizationManager>();
38+
protected override ILocalizationManager LocalizationManager => AqualityServices.Get<ILocalizationManager>();
3939

4040
public new AppiumWebElement GetElement(TimeSpan? timeout = null)
4141
{

Aquality.Appium.Mobile/src/Aquality.Appium.Mobile/Resources/Localization/be.json

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,4 @@
11
{
2-
"loc.clicking": "Націскаем",
3-
"loc.el.getattr": "Атрымліваем атрыбут '{0}'",
4-
"loc.get.text": "Атрымліваем тэкст элемента",
5-
"loc.text.sending.keys": "Націскаем клавішы '{0}'",
6-
"loc.no.elements.found.in.state": "Не знайшлі элементаў па лакатару '{0}' у {1} стане",
7-
"loc.no.elements.found.by.locator": "Не знайшлі элементаў па лакатару '{0}'",
8-
"loc.elements.were.found.but.not.in.state": "Знайшлі элементы па лакатару '{0}', але яны не ў жаданым стане {1}",
9-
"loc.elements.found.but.should.not": "Не павінна быць знойдзена элементаў па лакатару '{0}' у {1} стане",
10-
"loc.search.of.elements.failed": "Пошук элемента па лакатару '{0}' прайшоў няўдала",
11-
"loc.element.not.in.state": "Элемент {0} не стаў {1} пасля таймаўта {2}",
12-
"loc.get.page.source.failed": "Адбылася памылка ў час атрымання разметкі старонкі",
132
"loc.application.quit": "Закрываем праграму",
143
"loc.application.driver.remote": "Усталёўваем драйвер праграммы з выкарыстаннем сервера па адрасе '{0}'",
154
"loc.platform.name.wrong": "Платформа '{0}' не падтрымліваецца.",
@@ -19,14 +8,19 @@
198
"loc.button": "Кнопка",
209
"loc.checkbox": "Чэкбокс",
2110
"loc.checkable.is.checked": "Атрымліваем стан",
11+
"loc.checkable.state": "Стан: [{0}]",
2212
"loc.combobox": "Камбабокс",
13+
"loc.combobox.getting.selected.text": "Атрымліваем выбраны тэкст",
14+
"loc.combobox.getting.selected.value": "Атрымліваем выбранае значэнне",
15+
"loc.combobox.selected.text": "Выбраны тэкст: [{0}]",
16+
"loc.combobox.selected.value": "Выбранае значэнне: [{0}]",
2317
"loc.combobox.select.by.text": "Выбіраем значэнне з тэкстам '{0}'",
2418
"loc.combobox.select.by.value": "Выбіраем значэнне '{0}'",
2519
"loc.combobox.get.texts": "Атрымліваем спіс тэкстаў опцыяў",
2620
"loc.combobox.get.values": "Атрымліваем спіс значэнняў",
21+
"loc.combobox.texts": "Спіс тэкстаў опцыяў: [{0}]",
22+
"loc.combobox.values": "Спіс значэнняў: [{0}]",
2723
"loc.combobox.impossible.to.select.contain.value.or.text": "Немагчыма выбраць опцыю, якая змяшчае значэнне/тэкст '{0}' у камбабоксе '{1}'",
28-
"loc.file.reading_exception": "Памылка пры чытанні файла: '{0}'",
29-
"loc.focusing": "Факусуемся",
3024
"loc.label": "Надпіс",
3125
"loc.link": "Спасылка",
3226
"loc.radio": "Радыёкнопка",

Aquality.Appium.Mobile/src/Aquality.Appium.Mobile/Resources/Localization/en.json

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,4 @@
11
{
2-
"loc.clicking": "Clicking",
3-
"loc.el.getattr": "Getting attribute '{0}'",
4-
"loc.get.text": "Getting text from element",
5-
"loc.text.sending.keys": "Sending keys '{0}'",
6-
"loc.no.elements.found.in.state": "No elements with locator '{0}' were found in {1} state",
7-
"loc.no.elements.found.by.locator": "No elements were found by locator '{0}'",
8-
"loc.elements.were.found.but.not.in.state": "Elements were found by locator '{0}' but not in desired state {1}",
9-
"loc.elements.found.but.should.not": "No elements should be found by locator '{0}' in {1} state",
10-
"loc.search.of.elements.failed": "Search of element by locator '{0}' failed",
11-
"loc.element.not.in.state": "Element {0} has not become {1} after timeout {2}",
12-
"loc.get.page.source.failed": "An exception occurred while tried to save the page source",
132
"loc.application.quit": "Closing application",
143
"loc.application.driver.remote": "Setting application driver using the server on '{0}'",
154
"loc.platform.name.wrong": "Platform '{0}' is not supported.",
@@ -19,14 +8,19 @@
198
"loc.button": "Button",
209
"loc.checkbox": "CheckBox",
2110
"loc.checkable.is.checked": "Getting state",
11+
"loc.checkable.state": "State: [{0}]",
2212
"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: [{0}]",
16+
"loc.combobox.selected.value": "Selected value: [{0}]",
2317
"loc.combobox.select.by.text": "Selecting value by text '{0}'",
2418
"loc.combobox.select.by.value": "Selecting value '{0}'",
2519
"loc.combobox.get.texts": "Getting option texts array",
2620
"loc.combobox.get.values": "Getting values array",
21+
"loc.combobox.texts": "Option texts: [{0}]",
22+
"loc.combobox.values": "Option values: [{0}]",
2723
"loc.combobox.impossible.to.select.contain.value.or.text": "It is impossible to select option that contains value/text '{0}' from combobox '{1}'",
28-
"loc.file.reading_exception": "Exception while reading file: '{0}'",
29-
"loc.focusing": "Focusing",
3024
"loc.label": "Label",
3125
"loc.link": "Link",
3226
"loc.radio": "Radiobutton",

Aquality.Appium.Mobile/src/Aquality.Appium.Mobile/Resources/Localization/ru.json

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,4 @@
11
{
2-
"loc.clicking": "Клик",
3-
"loc.el.getattr": "Получение аттрибута '{0}'",
4-
"loc.get.text": "Получение текста элемента",
5-
"loc.text.sending.keys": "Нажатие клавиши '{0}'",
6-
"loc.no.elements.found.in.state": "Не удалось найти элементов по локатору '{0}' в {1} состоянии",
7-
"loc.no.elements.found.by.locator": "Не удалось найти элементов по локатору '{0}'",
8-
"loc.elements.were.found.but.not.in.state": "Удалось найти элементы по локатору '{0}', но они не в желаемом состоянии {1}",
9-
"loc.elements.found.but.should.not": "Не должно быть найдено элементов по локатору '{0}' в {1} состоянии",
10-
"loc.search.of.elements.failed": "Поиск элемента по локатору '{0}' прошел неудачно",
11-
"loc.element.not.in.state": "Элемент {0} не стал {1} после таймаута {2}",
12-
"loc.get.page.source.failed": "Произошла ошибка во время получения разметки экрана",
132
"loc.application.quit": "Закрытие приложения",
143
"loc.application.driver.remote": "Установка драйвера для приложения с использованием сервера по адресу '{0}'",
154
"loc.platform.name.wrong": "Платформа '{0}' не поддерживается.",
@@ -19,14 +8,19 @@
198
"loc.button": "Кнопка",
209
"loc.checkbox": "Чекбокс",
2110
"loc.checkable.is.checked": "Получение состояния",
11+
"loc.checkable.state": "Состояние: [{0}]",
2212
"loc.combobox": "Комбобокс",
13+
"loc.combobox.getting.selected.text": "Получаем выбранный текст",
14+
"loc.combobox.getting.selected.value": "Получаем выбранное значение",
15+
"loc.combobox.selected.text": "Выбранный текст: [{0}]",
16+
"loc.combobox.selected.value": "Выбранное значение: [{0}]",
2317
"loc.combobox.select.by.text": "Выбор значения с текстом '{0}'",
2418
"loc.combobox.select.by.value": "Выбор значения '{0}'",
2519
"loc.combobox.get.texts": "Получение списка текстов опций",
2620
"loc.combobox.get.values": "Получение списка значений",
21+
"loc.combobox.texts": "Список текстов опций: [{0}]",
22+
"loc.combobox.values": "Список значений: [{0}]",
2723
"loc.combobox.impossible.to.select.contain.value.or.text": "Не удаётся выбрать значение которое содержит значение/текст '{0}' в выпадающем списке '{1}'",
28-
"loc.file.reading_exception": "Исключение при чтении файла: '{0}'%n",
29-
"loc.focusing": "Взятие элемента в фокус",
3024
"loc.label": "Надпись",
3125
"loc.link": "Ссылка",
3226
"loc.radio": "Радиокнопка",

Aquality.Appium.Mobile/src/Aquality.Appium.Mobile/Resources/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@
4040
"pollingInterval": 300
4141
},
4242
"logger": {
43-
"language": "en"
43+
"language": "en",
44+
"logPageSource": true
4445
},
4546
"elementCache": {
4647
"isEnabled": true

Aquality.Appium.Mobile/tests/Aquality.Appium.Mobile.Tests/Resources/settings.androidwebsession.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
"pollingInterval": 300
3232
},
3333
"logger": {
34-
"language": "ru"
34+
"language": "ru",
35+
"logPageSource": true
3536
},
3637
"elementCache": {
3738
"isEnabled": true

Aquality.Appium.Mobile/tests/Aquality.Appium.Mobile.Tests/Resources/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@
4242
"pollingInterval": 300
4343
},
4444
"logger": {
45-
"language": "en"
45+
"language": "en",
46+
"logPageSource": true
4647
},
4748
"elementCache": {
4849
"isEnabled": true

0 commit comments

Comments
 (0)