2
2
#
3
3
# SPDX-License-Identifier: Apache-2.0
4
4
5
+ from selenium .common .exceptions import TimeoutException
5
6
from ...components .controls .single_select import SingleSelect
6
7
from ...components .base_component import Selector , BaseComponent
7
8
@@ -16,6 +17,19 @@ def __init__(self, browser, container):
16
17
"cancel_selected" : Selector (select = container .select + ' button[data-icon-only="true"]' )
17
18
})
18
19
20
+ def wait_for_values (self ):
21
+ """
22
+ Wait for dynamic values to load in SingleSelect
23
+ """
24
+ def _wait_for_values (driver ):
25
+ try :
26
+ return self .get_single_value ()
27
+ except Exception as e :
28
+ print ("Wait_for_values failed with ::{}" .format (str (e )))
29
+ try :
30
+ self .wait_for (_wait_for_values , msg = "No values found in SingleSelect" )
31
+ except TimeoutException :
32
+ return True
19
33
20
34
def list_of_values (self ):
21
35
"""
@@ -26,7 +40,20 @@ def list_of_values(self):
26
40
list_of_values = []
27
41
for each in self .get_elements ('values' ):
28
42
list_of_values .append (each .text .strip ())
43
+ self .wait_to_be_clickable ("dropdown" )
29
44
self .dropdown .click ()
30
45
self .wait_for ("internal_container" )
31
- self .wait_to_be_clickable ("dropdown" )
32
46
return list_of_values
47
+
48
+ def get_single_value (self ):
49
+ """
50
+ Return one value from Single Select
51
+ """
52
+ self .wait_to_be_clickable ("dropdown" )
53
+ self .dropdown .click ()
54
+ single_element = self .get_element ('values' )
55
+
56
+ self .wait_to_be_clickable ("dropdown" )
57
+ self .dropdown .click ()
58
+ self .wait_for ("internal_container" )
59
+ return single_element
0 commit comments