51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6087|回复: 6
打印 上一主题 下一主题

[Appium] appium python脚本,如何判断元素存在就点击,不存在就点击另一个元素?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-12-14 21:36:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,走过路过的哥哥姐姐们帮个忙,给个实例参考一下。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2018-3-30 09:35
  • 签到天数: 172 天

    连续签到: 6 天

    [LV.7]测试师长

    推荐
    发表于 2017-3-17 13:38:39 | 只看该作者
    思路应该是这样的:
    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()
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-7-23 11:23
  • 签到天数: 316 天

    连续签到: 1 天

    [LV.8]测试军长

    4#
    发表于 2016-12-15 16:18:05 | 只看该作者
    这两个元素是互斥关系?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2016-12-15 18:45:11 | 只看该作者
    104~牛牛 发表于 2016-12-15 16:18
    这两个元素是互斥关系?

    应该并不是,比方说我的app首次打开会有一个弹框,第二次以后就没有了,所以我需要去判断这个弹框出现没,出现了点击框内某个元素,不出现的话去执行其他操作。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-1-9 10:03
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2019-4-26 16:47:05 | 只看该作者
    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
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 09:27 , Processed in 0.067692 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表