【发布时间】:2016-04-05 14:04:57
【问题描述】:
我正在使用 python 和 Selenium WebDriver 来测试基于角度的网络应用程序。
在登录助手子例程中,登录时,我想在继续其余测试之前检查它是否成功。
为此,我有以下代码:
login_success = WebDriverWait(self.driver,5).until(EC.visibility_of_element_located((By.CLASS_NAME,"hr-landing")))
if login_success:
self.logger.info("Looks like login was successful")
else:
login_errors = self.get_login_errors()
self.logger.debug(login_errors)
我面临的问题是代码的第一行。对于成功登录,它会在找到类 'hr-landing' 时快速返回。
但是,对于失败的登录,找不到该类,我希望等待在 5 秒内超时,如我对 WebDriverWait 的调用中指定的那样。
但是,调用仅在 30 秒后超时(这是我在驱动程序上设置的隐式等待)
我该如何解决这个问题?我觉得提供显式超时没有意义,因为它仍然尊重隐式超时。
非常感谢! 莫兹。
【问题讨论】:
-
get_login_errors 包含隐式等待?
-
我在测试工具开始时调用 self.driver.implicitly_wait(30) 一次——等待设置在我的登录方法中持续存在——不仅持续存在,而且优先于提供给 WebDriverWait 的显式等待