python selenium中等待元素出现及等待元素消失操作

在自动化测试中,很多时候都会有等待页面某个元素出现后能进行下一步操作,或者列表中显示加载,直到加载完成后才进行下一步操作,但时间都不确定,如下图所示

幸运的是,在selenium 2后有一个模块expected_conditions,里面有很多函数可以完成这个工作,相关博客可见

http://www.cnblogs.com/nbkhic/p/4885041.html

但在selenium 1中或自己仅仅想写个简单用法该怎么处理那?解决如下:

from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
import selenium.webdriver.support.expected_conditions as EC
import selenium.webdriver.support.ui as ui



# 一直等待某元素可见,默认超时10秒
def is_visible(locator, timeout=10):
    try:
        ui.WebDriverWait(driver, timeout).until(EC.visibility_of_element_located((By.XPATH, locator)))
        return True
    except TimeoutException:
        return False

# 一直等待某个元素消失,默认超时10秒
def is_not_visible(locator, timeout=10):
    try:
        ui.WebDriverWait(driver, timeout).until_not(EC.visibility_of_element_located((By.XPATH, locator)))
        return True
    except TimeoutException:
        return False

调用方法很简单,只需要在用时,调用如下:

is_not_visible('//input[@input="search-error"]')

 

posted @ 2016-10-31 11:20  Believer007  阅读(24176)  评论(0编辑  收藏  举报