Appium popwindow 解决元素无法定位

问题

这里写图片描述

脚本执行上图右上角 + 号的时候,应用会弹出 popwindow 。这可能是 uiautomator 的 bug

driver.find_element

通过这类方法 find id name 等全部找不到元素会报错。脚本终止执行,遇到这个情况只能用 根据坐标去做点击


如何获取元素精准坐标

  • uiautomator viewer
  • appium 提供的 inspector
  • android monitor

上述三种工具都可以查看 Android 手机的元素和元素属性,这里我采用的 android monitor

这里写图片描述

定位后点击

可以看到我点击发起群里这个元素,右侧有这个元素的绝度坐标信息。两组 x y。这里为什么是两组呢,这里应该是获取的左上和右下的绝对坐标。这里我取它们的中间值

 driver.tap([(800, 300)])  # popwindow 发起群聊 绝对坐标

然后我执行脚本成功解决 popwindow 存在的问题,见下图 gif

后记

通过这种方式我们虽然成功的解决的 appium popwindow 无法通过 id name 等定位元素的问题。但是也有个隐患,这是我在 5.0 吋手机上取的绝对坐标,我努力的去通过定位最中心点去点击。这样是为了在可能的范围内适配 4.0 ~ 6.0 的手机,但是如果直接来一个大平板可能这样算来的坐标就无法点击到我们想点击的元素,解决办法是获取屏幕的长宽根据比例去换算。

 # 获取当前手机屏幕大小X,Y
            X = self.driver.get_window_size()['width']
            Y = self.driver.get_window_size()['height']

有更优雅的方式解决此问题欢迎在下方留言评论

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值