From 493deed95f9701df1514334581dc631213f7f84a Mon Sep 17 00:00:00 2001 From: hesteban-tuenti Date: Fri, 19 Jul 2024 09:55:27 +0200 Subject: [PATCH 1/8] update to appium4 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 7edfa80b..7300ef40 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ requests~=2.27 # api tests selenium~=4.0 # web tests -Appium-Python-Client~=2.3 # mobile tests +Appium-Python-Client=4.0.1 # mobile tests Pillow~=10.1 # visual testing screeninfo~=0.8 lxml~=5.1 From 3b38ba805537b1713d9971fdc90e931b96ecd433 Mon Sep 17 00:00:00 2001 From: hesteban-tuenti Date: Fri, 19 Jul 2024 10:04:07 +0200 Subject: [PATCH 2/8] update to appium4 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 7300ef40..d165e416 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ requests~=2.27 # api tests selenium~=4.0 # web tests -Appium-Python-Client=4.0.1 # mobile tests +Appium-Python-Client==4.0.1 # mobile tests Pillow~=10.1 # visual testing screeninfo~=0.8 lxml~=5.1 From fed2e56ccd7dfe55c670bf361e0da0e3462baf43 Mon Sep 17 00:00:00 2001 From: hesteban-tuenti Date: Mon, 29 Jul 2024 12:57:56 +0200 Subject: [PATCH 3/8] test set_text test send_keys ios test get from value ios restore set_value restore send_keys set_text test set value --- toolium/pageelements/input_text_page_element.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolium/pageelements/input_text_page_element.py b/toolium/pageelements/input_text_page_element.py index 90f56e01..68cb8a44 100644 --- a/toolium/pageelements/input_text_page_element.py +++ b/toolium/pageelements/input_text_page_element.py @@ -29,7 +29,7 @@ def text(self): if self.driver_wrapper.is_web_test() or self.webview: return self.web_element.get_attribute("value") elif self.driver_wrapper.is_ios_test(): - return self.web_element.get_attribute("label") + return self.web_element.get_attribute("value") elif self.driver_wrapper.is_android_test(): return self.web_element.get_attribute("text") From fb7edd5e41f9a20637dde45830484df1369da3cf Mon Sep 17 00:00:00 2001 From: hesteban-tuenti Date: Mon, 28 Oct 2024 16:38:21 +0100 Subject: [PATCH 4/8] changed set_text and refactor --- toolium/pageelements/input_text_page_element.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/toolium/pageelements/input_text_page_element.py b/toolium/pageelements/input_text_page_element.py index 68cb8a44..4b3fffe3 100644 --- a/toolium/pageelements/input_text_page_element.py +++ b/toolium/pageelements/input_text_page_element.py @@ -26,12 +26,10 @@ def text(self): :returns: element text value """ - if self.driver_wrapper.is_web_test() or self.webview: - return self.web_element.get_attribute("value") - elif self.driver_wrapper.is_ios_test(): - return self.web_element.get_attribute("value") - elif self.driver_wrapper.is_android_test(): + if self.driver_wrapper.is_android_test() and not self.webview: return self.web_element.get_attribute("text") + else: + return self.web_element.get_attribute("value") @text.setter def text(self, value): @@ -39,9 +37,7 @@ def text(self, value): :param value: value to be set """ - if self.driver_wrapper.is_ios_test() and not self.driver_wrapper.is_web_test(): - self.web_element.set_value(value) - elif self.shadowroot: + if self.shadowroot: value = value.replace("\"", "\\\"") self.driver.execute_script('return document.querySelector("%s")' '.shadowRoot.querySelector("%s")' From e817738bf5fa9bcf0dd6c7b122c00dbee450e28c Mon Sep 17 00:00:00 2001 From: hesteban-tuenti Date: Thu, 31 Oct 2024 15:07:29 +0100 Subject: [PATCH 5/8] change appium client minimun version --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d165e416..78cb703a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ requests~=2.27 # api tests selenium~=4.0 # web tests -Appium-Python-Client==4.0.1 # mobile tests +Appium-Python-Client~=4.0.1 # mobile tests Pillow~=10.1 # visual testing screeninfo~=0.8 lxml~=5.1 From dcf52de2127965dce2712ed5531bccc9892ad831 Mon Sep 17 00:00:00 2001 From: hesteban-tuenti Date: Fri, 8 Nov 2024 11:20:02 +0100 Subject: [PATCH 6/8] updated requirements and test --- requirements.txt | 8 ++++---- toolium/test/pageelements/test_derived_page_element.py | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index 78cb703a..ad6b48e6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ -requests~=2.27 # api tests -selenium~=4.0 # web tests -Appium-Python-Client~=4.0.1 # mobile tests -Pillow~=10.1 # visual testing +requests~=2.27 # api tests +selenium~=4.0 # web tests +Appium-Python-Client~=4.0 # mobile tests +Pillow~=10.1 # visual testing screeninfo~=0.8 lxml~=5.1 Faker~=25.9 diff --git a/toolium/test/pageelements/test_derived_page_element.py b/toolium/test/pageelements/test_derived_page_element.py index d11724dd..3b3d665c 100644 --- a/toolium/test/pageelements/test_derived_page_element.py +++ b/toolium/test/pageelements/test_derived_page_element.py @@ -105,9 +105,11 @@ def test_get_text(driver_wrapper): def test_get_input_text(driver_wrapper): driver_wrapper.driver.find_element.return_value = mock_element + driver_wrapper.is_android_test = mock.MagicMock(return_value=False) username_value = LoginPageObject().username.text + mock_element.get_attribute.assert_called_once_with('value') assert username_value == 'input text value' From c8844abcb95a0a74ca119cf7b60536f4c203736f Mon Sep 17 00:00:00 2001 From: hesteban-tuenti Date: Fri, 8 Nov 2024 13:42:27 +0100 Subject: [PATCH 7/8] update Appium client requirement and changelog --- CHANGELOG.rst | 3 +++ requirements.txt | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 8599d043..dea248a0 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -6,6 +6,9 @@ v3.1.6 *Release date: In development* +- Update Appium-Python-Client requirement to enable 3 and 4 versions +- Deprecate set_text method in InputText class to make it compatible with Appium-Python-Client 4 + v3.1.5 ------ diff --git a/requirements.txt b/requirements.txt index ad6b48e6..1fafe642 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ -requests~=2.27 # api tests -selenium~=4.0 # web tests -Appium-Python-Client~=4.0 # mobile tests -Pillow~=10.1 # visual testing +requests~=2.27 # api tests +selenium~=4.0 # web tests +Appium-Python-Client>=2.3,<5.0 # mobile tests +Pillow~=10.1 # visual testing screeninfo~=0.8 lxml~=5.1 Faker~=25.9 From ac22127cd743e45fed6870fd34e77924128b56b5 Mon Sep 17 00:00:00 2001 From: hesteban-tuenti Date: Fri, 8 Nov 2024 16:09:09 +0100 Subject: [PATCH 8/8] updated readme --- CHANGELOG.rst | 2 +- README.rst | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index dea248a0..c64f2947 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,7 +7,7 @@ v3.1.6 *Release date: In development* - Update Appium-Python-Client requirement to enable 3 and 4 versions -- Deprecate set_text method in InputText class to make it compatible with Appium-Python-Client 4 +- Deprecate set_text method in InputText class to make it compatible with Appium-Python-Client 3 and 4 v3.1.5 ------ diff --git a/README.rst b/README.rst index 9318db1c..8cec2337 100644 --- a/README.rst +++ b/README.rst @@ -30,6 +30,9 @@ The main dependencies are: in Android or iOS devices/emulators. - `requests `_: to test APIs +You might need to adjust the Selenium and Appium-Python-Client versions in your project. +In that case follow the `compatibility matrix `_ + **Using toolium-template** The easiest way of getting started is to clone `toolium-template `_