# -*- coding:utf-8 -*- # explain : 等待元素的操作 from selenium.webdriver.remote.webdriver import WebDriver from selenium.webdriver.remote.webelement import WebElement from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import webdriverwait from selenium.common.exceptions import TimeoutException from com.chanpin.initialize.Start import Primary class WaitWebElement: """ 等待元素是否出现、消失,用于返回true或false waitelementdisplay(self, driver: WebDriver, element: WebElement) -> bool 等待元素消失 """ def __init__(self): self.__time = Primary.readini.getvalue("webdriver", "implicit_waitTime") # 等待超时的时间 def waitelementdisplay(self, driver: WebDriver, element: WebElement) -> bool: """ 等待element元素消失,成功消失返回True,否则返回False :param driver: selenium.webdriver.remote.webdriver.WebDriver :param element: selenium.webdriver.remote.webelement.WebElement :return: bool 当元素成功消失返回True,元素未消失返回False """ inti = 0 while inti <= 3: # 当元素消失的时候返回True,进行下一步操作 try: webdriverwait(driver, timeout=int(self.__time)).until(EC.invisibility_of_element(element)) boolean = True except TimeoutException: boolean = False if boolean: Primary.Log.info("该元素已经消失") break else: Primary.Log.warning("该元素还未消失") inti += 1 if inti > 3: Primary.Log.error("3次判断后该元素还未消失" + element.__str__()) return False else: return True
说明:通过循环等待利用expected_conditions模块等待元素消失,如果元素消失后就返回True,否则就返回False。后续的类似方法以后补充
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。