Selenium测试和网络超时问题

时间:2015-06-26 13:32:59

标签: selenium testing automation network-programming timeout

我正在使用selenium来自动化测试用例,但到目前为止,由于网络问题(缓慢等等),测试很不稳定。这导致许多失败的测试用例。目前,重新运行失败的测试用例需要花费大量时间,与手动测试相比,自动化效率非常低。 除了添加隐式和显式超时之外,还有一种方法可以使测试更具动态性。

提前致谢

1 个答案:

答案 0 :(得分:0)

到目前为止,我处理这个问题的方法是编写一个辅助函数来包装WebDriverWait,这样它就不那么繁琐了。

以下是使用WebDriver Python绑定的示例:

# Import EC:
from selenium.webdriver.support import expected_conditions as EC

# Then define the helper:
def wait_for_clickability_then_click_element(self, by, locator, timeout=5):
    WebDriverWait(self.driver, timeout).until(EC.element_to_be_clickable((
            by, locator)))
    if by == By.XPATH:
        self.driver.febx(locator).click()
    elif by == By.CSS_SELECTOR:
        self.driver.febc(locator).click()

一个示例调用(您可能会使用它来代替正常的click()调用,这会导致您遇到时间问题):

wait_for_clickability_then_click_element(
    By.CSS_SELECTOR, "button[name='submit']")