@@ -2487,6 +2487,7 @@ def js_click(self, selector, by=By.CSS_SELECTOR, all_matches=False):
2487
2487
""" Clicks an element using JavaScript.
2488
2488
Can be used to click hidden / invisible elements.
2489
2489
If "all_matches" is False, only the first match is clicked. """
2490
+ self .wait_for_ready_state_complete ()
2490
2491
selector , by = self .__recalculate_selector (selector , by , xp_ok = False )
2491
2492
if by == By .LINK_TEXT :
2492
2493
message = (
@@ -2502,7 +2503,12 @@ def js_click(self, selector, by=By.CSS_SELECTOR, all_matches=False):
2502
2503
if self .is_element_visible (selector , by = by ):
2503
2504
self .__demo_mode_highlight_if_active (selector , by )
2504
2505
if not self .demo_mode and not self .slow_mode :
2505
- self .__scroll_to_element (element , selector , by )
2506
+ success = js_utils .scroll_to_element (self .driver , element )
2507
+ if not success :
2508
+ self .wait_for_ready_state_complete ()
2509
+ timeout = settings .SMALL_TIMEOUT
2510
+ element = page_actions .wait_for_element_present (
2511
+ self .driver , selector , by , timeout = timeout )
2506
2512
css_selector = self .convert_to_css_selector (selector , by = by )
2507
2513
css_selector = re .escape (css_selector ) # Add "\\" to special chars
2508
2514
css_selector = self .__escape_quotes_if_needed (css_selector )
0 commit comments