public static Isotope <Unit> waitUntilClickable(IWebElement el, TimeSpan timeout) => from _ in Isotope.waitUntil( from _1a in info($"Checking clickability " + prettyPrint(el)) from d in displayed(el) from e in enabled(el) from o in obscured(el) from _2a in info($"Displayed: {d}, Enabled: {e}, Obscured: {o}") select d&& e && (!o), identity) select unit;