51Testing软件测试论坛

标题: appium python脚本,如何判断元素存在就点击,不存在就点击另一个元素? [打印本页]

作者: adolf186    时间: 2016-12-14 21:36
标题: appium python脚本,如何判断元素存在就点击,不存在就点击另一个元素?
如题,走过路过的哥哥姐姐们帮个忙,给个实例参考一下。

作者: 梦想家    时间: 2016-12-15 10:00

作者: Miss_love    时间: 2016-12-15 12:26
关注
作者: 104~牛牛    时间: 2016-12-15 16:18
这两个元素是互斥关系?
作者: adolf186    时间: 2016-12-15 18:45
104~牛牛 发表于 2016-12-15 16:18
这两个元素是互斥关系?

应该并不是,比方说我的app首次打开会有一个弹框,第二次以后就没有了,所以我需要去判断这个弹框出现没,出现了点击框内某个元素,不出现的话去执行其他操作。
作者: lamecho    时间: 2017-3-17 13:38
思路应该是这样的:
1.界面会出现两个元素,但不会同时出现。假设你能够分别找到这两个元素,也就是说你在找定位元素上没有问题。
2.好了前提条件满足的情况下,就是代码实现逻辑的问题了。假设两个元素A和B。你的情况是A出现点A,B出现点B。我直接上代码,假设A的id为a,B的id为b,如果你是通过其他方式定位元素的替换就好了。
try:
    driver.find_element_by_id(a).click()
except Exception:
    driver.find_element_by_id(b).click()
作者: ziyanker    时间: 2019-4-26 16:47
adolf186 发表于 2016-12-15 18:45
应该并不是,比方说我的app首次打开会有一个弹框,第二次以后就没有了,所以我需要去判断这个弹框出现没 ...

方法一:适用于无论是否有弹框,都需要执行操作B
try:
    driver.find_element_by_id(a).click()
except Exception:
    pass

driver.find_element_by_id(b).click()

方法二:适用于执行的操作结果不一样
1、先写一个判断查找弹框元素的方法fun1(),如果找到,就返回Ture,没找到就返回False
2、另外写一个方法fun2(),调用fun1(),如果
if fun1():
    执行操作A
else:
    执行操作B




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2