python+selenium 判斷一個元素是否存在,if的錯誤用法


沒有自帶的函數用來判斷某個元素是否存在

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

 


免責聲明!

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



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