Python Selenium - 等到元素可见

Python Selenium - Wait until an element is visible

我知道

的解决方案

elem = WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".reply-button"))).click()

但是在这里你会等待 20 秒,然后它要么将元素加载到变量中,要么抛出异常。

是否有任何 blocking 解决方案可以停止程序直到元素可见?

首先WebDriverWait不会等20秒
它 returns 与传递的定位器匹配的网络元素,在您的情况下 .reply-button css_selector,此时 Selenium 检测到该元素存在。
只有在没有找到元素时才会等待定义的超时时间。
至于元素可见性,有一个类似的等待元素可见的预期条件,就像这样:

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.reply-button')))

这将完全阻止流程执行,直到发现位于 .reply-button css_selector 的元素可见或超时,即上述第一个。