13
13
# limitations under the License.
14
14
15
15
from time import sleep
16
+ from typing import TYPE_CHECKING
17
+
18
+ import pytest
19
+ from selenium .common .exceptions import NoSuchElementException
16
20
17
21
from test .functional .ios .helper .test_helper import BaseTestCase
18
22
23
+ if TYPE_CHECKING :
24
+ from appium .webdriver .webelement import WebElement
25
+
19
26
20
27
class TestKeyboard (BaseTestCase ):
21
28
def test_hide_keyboard (self ) -> None :
@@ -25,12 +32,12 @@ def test_hide_keyboard(self) -> None:
25
32
el .click ()
26
33
el .set_value ('Testing' )
27
34
28
- el = self .driver .find_element_by_class_name ('UIAKeyboard' )
29
- assert el .is_displayed ()
35
+ assert self ._get_keyboard_el ().is_displayed ()
30
36
31
37
self .driver .hide_keyboard (key_name = 'Done' )
32
38
33
- assert not el .is_displayed ()
39
+ with pytest .raises (NoSuchElementException ):
40
+ self ._get_keyboard_el ()
34
41
35
42
def test_hide_keyboard_presskey_strategy (self ) -> None :
36
43
self ._move_to_textbox ()
@@ -39,12 +46,12 @@ def test_hide_keyboard_presskey_strategy(self) -> None:
39
46
el .click ()
40
47
el .set_value ('Testing' )
41
48
42
- el = self .driver .find_element_by_class_name ('UIAKeyboard' )
43
- assert el .is_displayed ()
49
+ assert self ._get_keyboard_el ().is_displayed ()
44
50
45
51
self .driver .hide_keyboard (strategy = 'pressKey' , key = 'Done' )
46
52
47
- assert not el .is_displayed ()
53
+ with pytest .raises (NoSuchElementException ):
54
+ self ._get_keyboard_el ()
48
55
49
56
def test_hide_keyboard_no_key_name (self ) -> None :
50
57
self ._move_to_textbox ()
@@ -53,14 +60,12 @@ def test_hide_keyboard_no_key_name(self) -> None:
53
60
el .click ()
54
61
el .set_value ('Testing' )
55
62
56
- el = self .driver .find_element_by_class_name ('UIAKeyboard' )
57
- assert el .is_displayed ()
63
+ assert self ._get_keyboard_el ().is_displayed ()
58
64
59
65
self .driver .hide_keyboard ()
60
- sleep (10 )
61
66
62
- # currently fails.
63
- assert not el . is_displayed ()
67
+ with pytest . raises ( NoSuchElementException ):
68
+ self . _get_keyboard_el ()
64
69
65
70
def test_is_keyboard_shown (self ) -> None :
66
71
self ._move_to_textbox ()
@@ -70,6 +75,9 @@ def test_is_keyboard_shown(self) -> None:
70
75
el .set_value ('Testing' )
71
76
assert self .driver .is_keyboard_shown ()
72
77
78
+ def _get_keyboard_el (self ) -> 'WebElement' :
79
+ return self .driver .find_element_by_class_name ('XCUIElementTypeKeyboard' )
80
+
73
81
def _move_to_textbox (self ) -> None :
74
82
el1 = self .driver .find_element_by_accessibility_id ('Sliders' )
75
83
el2 = self .driver .find_element_by_accessibility_id ('Buttons' )
0 commit comments