ElementNotVisibleException: Message: element not visible
2018-07-16 17:32 _天枢 阅读(2089) 评论(0) 编辑 收藏 举报selenium自动化测试中,经常会报异常:
可能会有各种疑问,元素可以定位到啊。为什么报以下异常?
ElementNotVisibleException: Message: element not visible
原因:
元素在前台代码document中可以找到,但是不代表该元素就显示在了页面上。
所以报上述异常的原因就是,元素未显示在界面上。
能过我们测试中会自定义一下,找元素的功能:
def find_element(self,*loc):
"""
在指定时间内,查找元素;否则抛出异常
:param loc: 定位器
:return: 元素 或 抛出异常
"""
TimeOut = 20
try:
self.driver.implicitly_wait(TimeOut) #智能等待;超时设置
element = self.driver.find_element(*loc) #如果element没有找到,到此处会开始等待
if self.isDisplayTimeOut(element,TimeOut):
self.hightlight(element) #高亮显示
else:
raise ElementNotVisibleException #抛出异常,给except捕获
self.driver.implicitly_wait(0) #恢复超时设置
return element
except (NoSuchElementException,ElementNotVisibleException,UnexpectedAlertPresentException) as ex:
self.getImage
raise ex
判断元素是否在页面显示:
def isDisplayTimeOut(self,element,timeSes):
"""
在指定时间内,轮询元素是否显示
:param element: 元素对象
:param timeSes: 轮询时间
:return: bool
"""
start_time = int(time.time()) #秒级时间戳
timeStr = int(timeSes)
while (int(time.time())-start_time) <= timeSes:
if element.is_displayed():
return True
self.wait(500)
self.getImage
return False
作 者:
天枢
出 处:
http://www.cnblogs.com/yhleng/
关于作者:专注于软件自动化测试领域。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者
直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角
【
推荐】
一下。您的鼓励是作者坚持原创和持续写作的最大动力!