智能輪詢元素是否顯示:
def isDisplayTimeOut(self,element,timeSes): """ 在指定時間內,輪詢元素是否顯示 :param element: 元素對象 :param timeSes: 輪詢時間 :return: """ start_time = int(time.time()) #秒級時間戳 timeStr = int(timeSes) while (int(time.time())-start_time) <= timeSes: if element.is_displayed(): return True self.wait(500) return False
查找元素:
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) as ex: self.getImage raise ex
高亮顯示:
def hightlight(self,element): """ 元素高亮顯示 :param element: 元素對象 :return: 無 """ self.driver.execute_script("arguments[0].setAttribute('style', arguments[1]);", element, "border: 2px solid red;")
期待你的加入;共同學習,一起進步:
python|測試|技術交流 qq群:563227894
python|測試|技術交流 qq群:563227894
python|測試|技術交流 qq群:563227894