Skip to content

Commit 70048fc

Browse files
authored
chore: Fix functional keyboard tests with appium v1.21.0-beta.0 (appium#574)
* Fix function keyboard tests * Updated class name for keyboard
1 parent 344953a commit 70048fc

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

ci-jobs/functional_test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ parameters:
22
vmImage: 'macOS-10.15'
33
pytestOpt: '--doctest-modules --junitxml=junit/test-results.xml --cov=com --cov-report=xml --cov-report=html'
44
androidSdkVer: 27
5-
xcodeForIOS: 11.6
5+
xcodeForIOS: 12.3
66
CI: true
77

88
jobs:

test/functional/ios/helper/desired_capabilities.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def get_desired_capabilities(app: Optional[str] = None) -> Dict[str, Any]:
2828
desired_caps: Dict[str, Any] = {
2929
'deviceName': iphone_device_name(),
3030
'platformName': 'iOS',
31-
'platformVersion': '13.6',
31+
'platformVersion': '14.3',
3232
'automationName': 'XCUITest',
3333
'allowTouchIdEnroll': True,
3434
'wdaLocalPort': wda_port(),

test/functional/ios/keyboard_tests.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,16 @@
1313
# limitations under the License.
1414

1515
from time import sleep
16+
from typing import TYPE_CHECKING
17+
18+
import pytest
19+
from selenium.common.exceptions import NoSuchElementException
1620

1721
from test.functional.ios.helper.test_helper import BaseTestCase
1822

23+
if TYPE_CHECKING:
24+
from appium.webdriver.webelement import WebElement
25+
1926

2027
class TestKeyboard(BaseTestCase):
2128
def test_hide_keyboard(self) -> None:
@@ -25,12 +32,12 @@ def test_hide_keyboard(self) -> None:
2532
el.click()
2633
el.set_value('Testing')
2734

28-
el = self.driver.find_element_by_class_name('UIAKeyboard')
29-
assert el.is_displayed()
35+
assert self._get_keyboard_el().is_displayed()
3036

3137
self.driver.hide_keyboard(key_name='Done')
3238

33-
assert not el.is_displayed()
39+
with pytest.raises(NoSuchElementException):
40+
self._get_keyboard_el()
3441

3542
def test_hide_keyboard_presskey_strategy(self) -> None:
3643
self._move_to_textbox()
@@ -39,12 +46,12 @@ def test_hide_keyboard_presskey_strategy(self) -> None:
3946
el.click()
4047
el.set_value('Testing')
4148

42-
el = self.driver.find_element_by_class_name('UIAKeyboard')
43-
assert el.is_displayed()
49+
assert self._get_keyboard_el().is_displayed()
4450

4551
self.driver.hide_keyboard(strategy='pressKey', key='Done')
4652

47-
assert not el.is_displayed()
53+
with pytest.raises(NoSuchElementException):
54+
self._get_keyboard_el()
4855

4956
def test_hide_keyboard_no_key_name(self) -> None:
5057
self._move_to_textbox()
@@ -53,14 +60,12 @@ def test_hide_keyboard_no_key_name(self) -> None:
5360
el.click()
5461
el.set_value('Testing')
5562

56-
el = self.driver.find_element_by_class_name('UIAKeyboard')
57-
assert el.is_displayed()
63+
assert self._get_keyboard_el().is_displayed()
5864

5965
self.driver.hide_keyboard()
60-
sleep(10)
6166

62-
# currently fails.
63-
assert not el.is_displayed()
67+
with pytest.raises(NoSuchElementException):
68+
self._get_keyboard_el()
6469

6570
def test_is_keyboard_shown(self) -> None:
6671
self._move_to_textbox()
@@ -70,6 +75,9 @@ def test_is_keyboard_shown(self) -> None:
7075
el.set_value('Testing')
7176
assert self.driver.is_keyboard_shown()
7277

78+
def _get_keyboard_el(self) -> 'WebElement':
79+
return self.driver.find_element_by_class_name('XCUIElementTypeKeyboard')
80+
7381
def _move_to_textbox(self) -> None:
7482
el1 = self.driver.find_element_by_accessibility_id('Sliders')
7583
el2 = self.driver.find_element_by_accessibility_id('Buttons')

0 commit comments

Comments
 (0)