沒有自帶的函數用來判斷某個元素是否存在
is_displayed函數只能用於該元素已經存在去判斷該元素是否出現,而不能判斷某個元素是否存在
剛開始用 if......else 去判斷元素是否存在,結果發現 if 不成立時直接報錯了,而並不會進入else
以下是錯誤寫法
if self.find(By.XPATH,'//p[text()="暫無數據"]'): return "暫無數據" else: result = self.find(By.XPATH, '//tbody[@class="ant-table-tbody"]/tr/td[3]').text # 獲取查詢出的所有服務商名稱 return result
會報錯
打開判斷一個元素是否存在的正確方式是創建一個判斷函數
# 判斷某個元素是否存在 def isElementExist(self, element): flag = True driver = self.driver try: driver.find_element_by_xpath(element) return flag except: flag = False return flag
然后使用該函數來判斷元素是否存在
if isElementExist(self,'//p[text()="暫無數據"]'):
return "暫無數據" else: result = self.find(By.XPATH, '//tbody[@class="ant-table-tbody"]/tr/td[3]').text # 獲取查詢出的所有服務商名稱 return result