in past, i posted for usage of Expected Conditions function. it that post, present the most frequently used function visibility_of_element_located(locator). Similarly, there are many function for expected conditions. These are:
element_to_be_clickable – it is Displayed and Enabled.
you can find detailed explanation and their source code in this link.
Among these function, especially two function is can confused you. presence_of_element_located() and visibility_of_element_located(). The difference is, visibility wait for present element in DOM and become visible. for ex, element is exist(present) but style is set to not display it will be failed. To pass, element should be present and in terms of style it should be visible.
presence_of_element_located() it doesn’t matter visible or not, check if element is exist(present) in DOM.