Document

appium-3-如何避免定位的元素不存在而报错

假设场景不存在该元素:

center_text=driver.find_element_by_id("com.taobao.idlefish:id/center_text")

我们在代码里面直接这么写,元素不存在会导致代码报错,无法执行后面的代码;

有的时候即使报错了,比如一旦发现没有这个元素的时候,发送邮件通知,

 

def find_element(element,id=0):
try:
if id==0:
driver.find_element_by_accessibility_id(element)
return True
elif id==1:
driver.find_element_by_id(element)
return True
elif id==2:
driver.find_element_by_xpath(element)
return True
elif id==3:
driver.find_element_by_android_uiautomator('new UiSelector().text({})'.format(element))
return True
except selenium.common.exceptions.TimeoutException:
return False
except selenium.common.exceptions.NoSuchElementException:
return False
except:
return False

根据上面的方法,我们可以把代码修改为

if find_element("com.taobao.idlefish:id/center_text",id=1):
  print("找到元素了")
else:
  print("没有找到元素,可以发邮件通知了")

 

posted on 2020-07-20 17:21  小排顾  阅读(495)  评论(0编辑  收藏  举报

导航