解决appium获取动态页面元素很慢的问题

问题描述:使用python+appium的方式做移动端测试时,对于一些有进度条或者播放条的页面,获取页面元素时非常缓慢,都会在10s以上,于是会导致各种各样的问题。

获取元素花费时间过长具体原因没找到,推测可能是UiAutomator2自身的逻辑

解决方法:

1. 使用坐标定位元素
已下载为例,在开始下载前获取你想要元素的坐标轴,这时即使下载开始后,仍能通过坐标轴来对元素进行点击

from appium.webdriver.common.touch_action import TouchAction
'''
balabala
'''
element = driver.find_element_by_id("download")
#获取该元素中间的坐标轴
x_position = element.location['x'] + element.size['width'] / 2
y_position = element.location['y'] + element.size['height'] / 2
#下载5s
element.click()
time.sleep(5)
#开始下载后使用element.click()会很花时间
#element.click()
#点击该坐标轴
TouchAction(driver).tap(x=x_position , y=y_position ).perform()

这种方式适合页面长宽比较固定且只需要点击操作的情况

2. 设置waitForIdleTimeout
appium支持的Settings 官网有相关的介绍,可以设置idel状态的超时时间
在这里插入图片描述

  • 在driver的desired_caps中进行初始化,将在整个driver中起作用
desired_caps['settings[waitForIdleTimeout]'] = 100
  • 使用driver.update_settings动态设置
driver.update_settings({'waitForIdleTimeout': 100})

设置完后再看执行时间,基本在1s以内,也能正确点击元素:
在这里插入图片描述

  • 11
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Appium页面加载慢的原因可能有多种。其中一种原因是使用了较慢的元素定位方法,比如使用xpath定位元素。在查找元素过程中,尽量少使用xpath,可以尝试使用其他定位方法,如cssSelector、linkText、partialLinkText等,它们的速度更快。另外,可以使用driver.PageSource先将页面缓存起来,然后在缓存中查找元素,这样可以减少与Appium的通信次数,提高速度。此外,还可以设置waitForIdleTimeout参数来调整Appium的等待超时时间,以适应页面加载较慢的情况。可以在driver的desired_caps中进行初始化,或者使用driver.update_settings动态设置。\[3\] #### 引用[.reference_title] - *1* *2* [解决appium获取动态页面元素很慢问题](https://blog.csdn.net/wdmzjzclf/article/details/119454590)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [2020年12月30日 appium 执行速度优化](https://blog.csdn.net/quwujin/article/details/111943744)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值