Appium 使用 find_element_by_xpath 等判断一个元素是否存在,如果不存用什么方法处理比较好才不会导致程序中断?

wagnxinghao · 2017年04月18日 · 最后由 wagnxinghao 回复于 2017年04月20日 · 2524 次阅读

使用 XPath,name 等判断元素是否存在,如果存在我们可对开元素进行操作,但是如果元素定位不存在会报错我目前用的是 try...except 方法,请问还有没有其他更好的办法,老师用这个感觉很 low 啊
我的方法是:
try:
# 存在时
self.driver.find_element_by_xpath('//UIAApplication[1]/UIAWindow[1]/UIAButton[5]').click()
except
# 如果不存在则在此处写应对方法,才不会导致操作中断

共收到 6 条回复 时间 点赞

try exception

5_shuai 回复

try exception 和 try except 不是一样?

wagnxinghao 回复

其实意思就是当找不到你的 element 时,会报 nosuchelementexception,去抓这个错,程序就不会报错中断了。还有一个就是写一个函数去抓这个异常,抓不到返回 true,抓到了就 false,不过这个是需要对 appium 的 webdriver 深入了解。

5_shuai 回复

因为在 appium 定位元素的时候随着页面的改变(比如:有时候会弹出授权窗口),元素的 xpath 也随之发生改变,就会有很多 try except,多了的话还会 try 语句还嵌套 try 语句,感觉页面比较乱,

wagnxinghao 回复

是啊,所写个函数拿来用吧。

5_shuai 回复

这是个好办法,能不能给给思路,我逻辑感不是很强啊

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