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 的元素可见或超时,即上述第一个。
我知道
的解决方案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 的元素可见或超时,即上述第一个。