Appium appium 如何判断手机界面中是否有某个元素

冯嘉 · 2015年07月03日 · 最后由 yifenzhonghuxi 回复于 2016年05月23日 · 3662 次阅读

appium 如何判断手机界面中是否有某个元素,例如找到” 登录 “按钮,找到后点击登录,如未找到登录按钮则停止运行用例

共收到 15 条回复 时间 点赞

不知道咋回答,先去用用 appium 吧

未找到不就是 failed 了吗。。。
find element 的方法如果没找到元素都会抛出 NoSuchElement 异常的。

find element 元素
return turn
加一层 catch
return flase

try:
  em = driver.find_element_by_xpath(*path*)
  em.click()
except:
  print 'failed'
  pass

自己的一点思路,python 写的

#2 楼 @chenhengjie123 可以考虑使用 list 判断是否为空,这样没有 exception 抛出的

#5 楼 @tobecrazy 嗯。这样也行。
方法有很多。

#4 楼 @otori 思路没错,大致就是这样了。
但有个小问题,这种写法 catch 的东西太多了,没指定 exception 的话会 catch 所有 exception 。但我们实际上只需要 catch NoSuchElementException 。

catch 所有 exception 的坏处是其它错误也会被 catch 住,然后用户就不知道到底出错原因是啥了,只知道出错了,然后他就只能按照自己的猜想去 fix 。例如他认为是找不到元素,然后一直往这个方向走,但实际上可能是因为 driver 初始化时有问题。

isDisplay()

我的方法

try:
    if(xxxx.isDisplay);

catch:
    xxxxx

#7 楼 @chenhengjie123 请问怎么指定 NoSuchElementException,我 except NoSuchElementException,提示未定义

方法非常多

if "登录" in self.driver.pagesource:
       ........

#10 楼 @520szh NoSuchElementException 是 webdriver api 自定义的 exception,你要先 import 进来。

3 楼正解

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册