WebDriverWait超时等待驱动程序隐式超时而不是提供的显式超时

时间:2016-04-05 14:04:57

标签: selenium-webdriver

我正在使用python和Selenium WebDriver来测试基于角度的Web应用程序。

在登录助手子程序中,登录时,我想在继续进行其余测试之前检查是否成功。

为此,我有以下代码:

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)

我面临的问题是代码中的第一行。要成功登录,它会在课程“小时登陆”时快速返回。找到了。

但是,对于登录失败,找不到该类,我希望在我调用WebDriverWait时指定的等待时间超过5秒。

然而,呼叫仅在30秒后超时(这是我在我的驱动程序上设置的隐含等待)

如何解决这个问题?我觉得提供显式超时是没有意义的,因为它仍然尊重隐含的超时。

非常感谢! Moez。

1 个答案:

答案 0 :(得分:0)

这是我们在使用隐式和显式等待时通常面临的问题。失败时调用get_login_errors(),所以我希望它有隐式等待。

为了避免这些问题,我希望能够使用流利的等待来解释here

谢谢你, 穆拉利