Python Selenium - 等待元素可见

3

我知道可以使用以下方法来解决:

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

但是这种方法会等待20秒,然后将元素加载到变量中或抛出异常。

是否有一种阻塞式的解决方案,可以使程序一直等待直到元素可见为止?

1个回答

2
首先,WebDriverWait 不会等待20秒钟。
它会在Selenium检测到元素存在的那一刻返回匹配传递定位器(在您的情况下是 .reply-button css_selector)的网页元素。
只有在找不到元素时,它才会等待定义的超时时间。
至于元素的可见性,有一个类似的预期条件等待元素可见,像这样:
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.reply-button')))

这将会阻塞代码的执行,直到通过 .reply-button css选择器定位到的元素变为可见状态,或者达到设定的超时时间,以先到者为准。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接