Click the Start a free trial link to start a 15-day SaaS trial of our product and join our community as a trial user. If you are an existing customer do not start a free trial.
AppDynamics customers and established members should click the sign in button to authenticate.
01-16-2019 10:47 AM - edited 01-16-2019 12:43 PM
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>
User | Count |
---|---|
10 | |
1 | |
1 | |
1 | |
1 |
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form