封装 OBjectMap.py工具类
三、等待页面元素消失
思路流程图
def element_disappear(self,driver,locate_type,locator_expression,timeout=30):
"""
等待页面元素消失
:param driver:浏览器驱动
:param locate_type:定位类型
:param locator_expression:定位表达式
:param timeout:超时
:return:
"""
if locate_type:
start_ms = time.time() * 1000 # 开始时间 获取当前时间戳
stop_ms = start_ms + (timeout * 1000) # 结束时间
for x in range(int(timeout*10)):
try:
element=driver.find_element(by=locate_type,value=locator_expression)
if element.is_displayed():#如果元素可见
now_ms=time.time()*1000
if now_ms>=stop_ms:#判断是否在等待时间内
break
time.sleep(0.1)
except Exception: #元素不可见,则ture
return True
raise Exception("元素有消失,定位方式:"+locate_type+"定位表达式:"+locator_expression)
else:
pass
四、等待页面元素出现
等待页面元素消失思路流程图
def element_appear(self,driver,locate_type,locator_expression,timeout=30):
"""
等待页面元素出现
:param driver:
:param locate_type:
:param locator_expression:
:param timeout:
:return:
"""
if locate_type:
start_ms = time.time() * 1000 # 开始时间 获取当前时间戳
stop_ms = start_ms + (timeout * 1000) # 结束时间
for x in range(int(timeout*10)):
try:
element=driver.find_element(by=locate_type,value=locator_expression)
if element.is_displayed():#如果元素可见,啧返回元素
return element
else:#否则抛出异常
raise Exception()
except Exception:#在超时时间内继续循环
now_ms = time.time() * 1000
if now_ms >= stop_ms:
break #退出循环
time.sleep(0.1)
pass
raise ElementNotVisibleException("元素没有出现,定位方式:"+locate_type+"定位表达式:"+locator_expression)
else:
pass