Selenium WebDriver等待组合的ExpectedConditions(AND、OR、NOT运算符)

2024-06-02 06:10:02 发布

您现在位置:Python中文网/ 问答频道 /正文

如何让Selenium WebDriver等到组合的预期条件?在

基本上,Java的类似问题是askedanswered,但是这种方法ORdocs)不适用于Python绑定(GitHub上的expected_conditions.py

我有一个非常慢的回调,结果如下:

  • 如果所有内容都已正确加载,则为id=_report_success的div
  • 出现任何故障时,使用id=_report_error的div

所以,我需要等到_report_success或{}变得可见。在

另外,这些条件非常简单:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.ID, '_report_success')))

WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.ID, '_report_error')))

在Java中,组合版本如下所示:

^{pr2}$

当然,我可以创建一个循环,并以一个间隔检查两者的存在(实际上就像在中实现的那样)WebDriverWait.until),但我在寻找更优雅、更灵活的解决方案。毕竟,如果这种需求的方法存在于Java版本中,为什么它不在Python绑定中呢?在


Tags: 方法fromreportdividseleniumerrorjava