ElementNotVisibleException: Message: element not visible


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

 

 

 期待你的加入;共同學習,一起進步:
python|測試|技術交流 qq群:563227894
python|測試|技術交流 qq群:563227894
python|測試|技術交流 qq群:563227894


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM