End User Monitoring (EUM)

cancel
Showing results for 
Search instead for 
Did you mean: 

selenium.common.exceptions.StaleElementReferenceException: Message: Element is no longer valid

selenium.common.exceptions.StaleElementReferenceException: Message: Element is no longer valid

I have a Python/Selenium script that has 30+ of the following. I've included two samples.

 

try:
xpathName = "//*[@id='locationDeductableAmount']"
xpathValue = "1000"
wait = WebDriverWait(driver, 10) 
element = wait.until(EC.element_to_be_clickable((By.XPATH, "" + xpathName + "")))
element.click()

dropdown_element = wait.until(EC.presence_of_element_located((By.XPATH, "" + xpathName + "")))
select = Select(dropdown_element)
select.select_by_visible_text(xpathValue)
except:
stop = time.time() 
print("Step " + step + ": Response Time (sec) is " + str(stop - start))
raise Exception ("WARNING: Could not find " + xpathName + " id")
print("--------")

try:
xpathName = "//*[@id='buildingSquareFootagerest']"
xpathValue = "3000"

wait = WebDriverWait(driver, 10)

element = wait.until(EC.element_to_be_clickable((By.XPATH, "" + xpathName + "")))
element.click()

element = wait.until(EC.element_to_be_clickable((By.XPATH, "" + xpathName + "")))
element.clear()

element = wait.until(EC.element_to_be_clickable((By.XPATH, "" + xpathName + "")))
element.send_keys(xpathValue)
except:
stop = time.time() 
print("Step " + step + ": Response Time (sec) is " + str(stop - start))
raise Exception ("WARNING: Could not find " + xpathName + " id")
print("--------")

The website in question only works in IE.

 

Sometimes my script completes without any issues and other times it errors with "selenium.common.exceptions.StaleElementReferenceException: Message: Element is no longer valid".

 

This error which is random happens at different areas of the script.

 

I've tried using a hard pause of 1 or 2 seconds. There are times it works and other times it fails.

 

Can anyone please tell me what I need to update to make this work?

 

I've update the post to include the exception messages

 

Traceback (most recent call last):
  File "c:\Users\uswarv41\Box Sync\Documents\GitHub\appd-selenium-scripts\CML_BIE_PROD_NB_Restaurant_Synthetic_Script.py", line 375, in <module>
    element.click()
  File "C:\Users\uswarv41\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Users\uswarv41\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\uswarv41\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\uswarv41\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: Element is no longer valid


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\Users\uswarv41\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\ptvsd_launcher.py", line 45, in <module>
    main(ptvsdArgs)
  File "c:\Users\uswarv41\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\__main__.py", line 265, in main
    wait=args.wait)
  File "c:\Users\uswarv41\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\__main__.py", line 256, in handle_argse_args
    run_main(addr, name, kind, *extra, **kwargs)
  File "c:\Users\uswarv41\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\_local.py", line 52, in run_main
    runner(addr, name, kind == 'module', *extra, **kwargs)
  File "c:\Users\uswarv41\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\runner.py", line 32, in run
    set_trace=False)
  File "c:\Users\uswarv41\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\_vendored\pydevd\pydevd.py", line 1283, in run    return self._exec(is_module, entry_point_fn, module_name, file, globals, locals)
  File "c:\Users\uswarv41\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\_vendored\pydevd\pydevd.py", line 1290, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script  File "c:\Users\uswarv41\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\_vendored\pydevd\_pydev_imps\_pydev_execfile.py", line 25, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "c:\Users\uswarv41\Box Sync\Documents\GitHub\appd-selenium-scripts\CML_BIE_PROD_NB_Restaurant_Synthetic_Script.py", line 385, in <module>    raise Exception ("WARNING: Could not find " + xpathName + " id")
Exception: WARNING: Could not find //*[@id='locationDeductableAmount'] id
PS C:\Users\uswarv41\Box Sync\Documents\GitHub\appd-selenium-scripts>
Tags (2)
selenium.common.exceptions.StaleElementReferenceException: Message: Element is no longer valid