This error message...
Traceback (most recent call last):
File "Inventorytest.py", line 88, in <module>
j.go_to_application()
File "Inventorytest.py", line 65, in go_to_application
EC.element_to_be_clickable((By.ID, 'FavoriteApp_ITEM'))
File "/home/naroladev/Mercury_Back-End/mercuryenv/lib/python3.6/site-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
...implies that the WebDriver variant was unable to locate the desired WebElement within the timeframe for which the WebDriverWait was constructed.
WebDriverWait
The WebDriverWait constructor takes a WebDriver instance as an argument and timeout in seconds.
Hence, irrespective of usage of either of the expected_conditions, WebDriverWait on failure will result in TimeoutException.
This usecase
In this usecase, the line:
EC.element_to_be_clickable((By.ID, 'FavoriteApp_ITEM'))
was unable to identify the desired element within the desired time frame hence you faced TimeoutException.
However, from TimeoutException it will be tough to dig out the actual result of the failure.
Solution
As a solution to know about the exact cause of the failure, you need to remove the WebDriverWait and replace the line of code with either:
find_element_by_class_name(name)
find_element_by_css_selector(css_selector)
find_element_by_id(id)
find_element_by_link_text(link_text)
find_element_by_name(name)
find_element_by_partial_link_text(partial_link_text)
find_element_by_tag_name(tag_name)
find_element_by_xpath(xpath)
If required you can slow down the search inducing waits through time.sleep(secs)
while debugging.
References
You can find a couple of relevant discussions in:
FavoriteApp_ITEM
? – ThorlieFavoriteApp_ITEM
gets above issue on server – Bil