Example not exact code:
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(45));
wait.Until(ExpectedConditions.ElementIsVisible(By.Id(Element)));
wait.Until(ExpectedConditions.ElementToBeClickable(By.Id(Element)));
driver.FindElement(By.Id(Element)).Click();
And it SOMETIMES simply doesnt click. No errors, nothing, and tests fail at next steps, because i assume element has been clicked. 1/10 of same test runs fail to click.
Afterwards inspecting failed test, webdriver seem to 'highlight' checkbox instead of click. Manually i can obviously see/click it.
Google says it might be because element is not enabled yet at point when driver is clicking but i understand if its clikable its enabled. And if it would be covered by another element due to loading error would be different: 'element is not clickable at point..' and there are no errors.
I really would not want to use explicit waits.
What could cause it ?