@@ -1424,6 +1424,7 @@ def click_nth_visible_element(
1424
1424
if self .timeout_multiplier and timeout == settings .SMALL_TIMEOUT :
1425
1425
timeout = self .__get_new_timeout (timeout )
1426
1426
selector , by = self .__recalculate_selector (selector , by )
1427
+ self .wait_for_ready_state_complete ()
1427
1428
self .wait_for_element_present (selector , by = by , timeout = timeout )
1428
1429
elements = self .find_visible_elements (selector , by = by )
1429
1430
if len (elements ) < number :
@@ -1435,14 +1436,23 @@ def click_nth_visible_element(
1435
1436
if number < 0 :
1436
1437
number = 0
1437
1438
element = elements [number ]
1438
- self .wait_for_ready_state_complete ()
1439
1439
try :
1440
1440
self .__scroll_to_element (element )
1441
1441
element .click ()
1442
1442
except (StaleElementReferenceException , ENI_Exception ):
1443
- self .wait_for_ready_state_complete ()
1444
1443
time .sleep (0.12 )
1445
- self .__scroll_to_element (element )
1444
+ self .wait_for_ready_state_complete ()
1445
+ self .wait_for_element_present (selector , by = by , timeout = timeout )
1446
+ elements = self .find_visible_elements (selector , by = by )
1447
+ if len (elements ) < number :
1448
+ raise Exception (
1449
+ "Not enough matching {%s} elements of type {%s} to "
1450
+ "click number %s!" % (selector , by , number )
1451
+ )
1452
+ number = number - 1
1453
+ if number < 0 :
1454
+ number = 0
1455
+ element = elements [number ]
1446
1456
element .click ()
1447
1457
1448
1458
def click_if_visible (self , selector , by = By .CSS_SELECTOR ):
0 commit comments