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"]')
Email:362299908@qq.com