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