1

I am using selenium in python and here's a line that waits 20 seconds but sometimes still gives error as follows:

eleName = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='AutoNumber1']/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[2]/table/tbody/tr/td/form/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[1]/td/table/tbody/tr/td[1]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/p/font/b")))

How can I use try except and after except statement say goto the same line to try again??

undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
YasserKhalil
  • 9,138
  • 7
  • 36
  • 95

1 Answers1

1

To try the same line of code untill the operation is successfull you can wrapup the line of code within a try-break-except-continue{} block as follows:

while True:
    try:
        eleName = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//*[@id='AutoNumber1']/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[2]/table/tbody/tr/td/form/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[1]/td/table/tbody/tr/td[1]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/p/font/b")))
        break
    except TimeoutException:
        continue
# other lines of code

This block of code will continue to execute the line within try block in a loop, till the visibility of the WebElement eleName. Once the WebElement is found, the execution will break out of the loop.

undetected Selenium
  • 183,867
  • 41
  • 278
  • 352