解决appium操作的元素与定位的元素不一致问题

有一阵子在学习appium自动化的时候,遇到个很奇怪的问题:定位元素属性没问题,但执行点击事件的时候总是点击不到我需要点击的元素。原因是:我们定位执行点击事件时,页面元素还未加载完坐标位置不对,所以点击事件有所偏差。现将解决思路记下来,方便日后查看
思路:
1、循环获取元素的坐标位置
2、将获取的坐标位置添加到列表中
3、统计判断坐标位置是否多次出现,多次出现则执行点击事件

粗略的代码示例如下,这里只提供了解决思路可自行优化扩展:

from appium import webdriver
import time
desired_caps = {
    "platformName":"Android",
    "deviceName":"emulator-5554",
    "platformVersion":"5.1.1",
    "appPackage":"com.yipiao",
    "appActivity":"com.zt.main.entrance.ZTLaunchActivity",
    "noReset":True
}

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps)
time.sleep(3)
# 定义元素存放列表
element_list = []

for i in range(4):
    # 获取元素的坐标位置
    element = driver.find_element_by_xpath("//*[@text='订单']").location
    element_list.append(str(element))   # 将坐标位置添加到列表中
    if element_list.count(str(element)) > 1:   # 判断列表坐标位置出现的次数是否大于1,大于则执行点击操作
        driver.find_element_by_xpath("//*[@text='订单']").click()
        break  # 退出循环
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值