@@ -1190,10 +1190,14 @@ def hover_and_click(self, hover_selector, click_selector,
1190
1190
outdated_driver = False
1191
1191
element = None
1192
1192
try :
1193
- if self .browser == "safari" :
1193
+ if self .mobile_emulator :
1194
+ # On mobile, click to hover the element
1195
+ dropdown_element .click ()
1196
+ elif self .browser == "safari" :
1194
1197
# Use the workaround for hover-clicking on Safari
1195
1198
raise Exception ("This Exception will be caught." )
1196
- page_actions .hover_element (self .driver , dropdown_element )
1199
+ else :
1200
+ page_actions .hover_element (self .driver , dropdown_element )
1197
1201
except Exception :
1198
1202
outdated_driver = True
1199
1203
element = self .wait_for_element_present (
@@ -1204,8 +1208,12 @@ def hover_and_click(self, hover_selector, click_selector,
1204
1208
self .open (self .__get_href_from_partial_link_text (
1205
1209
click_selector ))
1206
1210
else :
1207
- self .js_click (click_selector , click_by )
1208
- if not outdated_driver :
1211
+ self .js_click (click_selector , by = click_by )
1212
+ if outdated_driver :
1213
+ pass # Already did the click workaround
1214
+ elif self .mobile_emulator :
1215
+ self .click (click_selector , by = click_by )
1216
+ elif not outdated_driver :
1209
1217
element = page_actions .hover_and_click (
1210
1218
self .driver , hover_selector , click_selector ,
1211
1219
hover_by , click_by , timeout )
@@ -5137,6 +5145,11 @@ def setUp(self, masterqa_mode=False):
5137
5145
if self ._reuse_session :
5138
5146
sb_config .shared_driver = self .driver
5139
5147
5148
+ if self .browser in ["firefox" , "ie" , "safari" ]:
5149
+ # Only Chromium-based browsers have the mobile emulator.
5150
+ # Some actions such as hover-clicking are different on mobile.
5151
+ self .mobile_emulator = False
5152
+
5140
5153
# Configure the test time limit (if used).
5141
5154
self .set_time_limit (self .time_limit )
5142
5155
0 commit comments