2015-06-26 93 views
0

我使用硒自动化测试用例网络超时问题,但是到目前为止测试是片状由于网络问题(缓慢等)。这导致很多失败的测试用例。目前,重新运行失败的测试用例是服用大量的时间,使得自动化效率非常低,而不是手动测试。 有没有一种方法,使测试比增加隐性和显性超时更加动态等。Selenium测试和

在此先感谢

回答

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() 

一个例子调用(你可能会代替正常的点击使用()调用运行到时间问题)可能看起来像:

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