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

 

posted @ 2020-06-11 14:57  jasmine0627  阅读(1913)  评论(0编辑  收藏  举报