引言:

在做UI自动化的过程中,我们有时候为了等待元素的出现,需要加一些等待时间来帮助,但是有时候时间加的过多或者过少,这个没有办法判断,今天就介绍几种等待时间,我们看看那种适合我们

一、强制等待

看到名称就应该知道,强制等待,就是设置多少秒,就必须等待多少秒,才能继续往下面操作

time.sleep()

def sleep(seconds): # real signature unknown; restored from __doc__

"""

sleep(seconds)

延迟指定的秒数

"""

pass

使用方法

# 直接在需要等待的地方添加 time.sleep(10)

二、隐式等待

隐式等待: implicitly_wait?() 默认参数的单位为妙,设置一个等待时间,它并不影响脚本的执行速度。当脚本执行到某个元素定位是,如果元素可以定位,则继续执行,如果元素定位不到,则它将以轮询的方式不断地判断元素是否被定位到。假设在第六秒定位到了元素则继续执行,若直到超出设置的时长10秒还没有定位到元素,则抛出异常。

def implicitly_wait(self, time_to_wait):

"""

Sets a sticky timeout to implicitly wait for an element to be found,

or a command to complete. This method only needs to be called one

time per session. To set the timeout for calls to

execute_async_script, see set_script_timeout.

:Args:

- time_to_wait: Amount of time to wait (in seconds)

:Usage:

driver.implicitly_wait(30)

"""

if self.w3c:

self.execute(Command.SET_TIMEOUTS, {

'implicit': int(float(time_to_wait) * 1000)})

else:

self.execute(Command.IMPLICIT_WAIT, {

'ms': float(time_to_wait) * 1000})

使用方法:

# 在需要等待的地方直接添加 driver.implicitly_wait(10)

三、Activity等待

Activity等待: app特有一种等待,通过Activity的出现来帮助我们进行判断是否到达这个页面然后进行一系列的操作 ,通过wait_activity 进行判断

def wait_activity(self, activity, timeout, interval=1):

"""等待一个activity,直到在规定时间内activity出现

This is an Android-only method.

:Args:

- activity - target activity

- timeout - max wait time, in seconds

- interval - sleep interval between retries, in seconds

"""

try:

WebDriverWait(self, timeout, interval).until(

lambda d: d.current_activity == activity)

return True

except TimeoutException:

return False

使用方法:

直接在需要等待元素出现的地方添加

# 添加activity,后面加上等待的时间,超过时间就报错 driver.wait_activity('com.ali.user.mobile.login.ui.UserLoginActivity',30)

四、显示等待

显示等待本来准备等到写selenium教程的时候在介绍,感觉后面会用,这里就直接给大家进行介绍了。 如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以加测试交流群,还会有同行一起技术交流。

先看源码:

def __init__(self, driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None):

"""

driver: 返回一个webdriver实例化

timeout:设置一个超时时长(S)

poll_frequency:循环读取元素的时间,默认是0.5(s)

使用方法 :

from selenium.webdriver.support.ui import WebDriverWait n

element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id("someId")) n

is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)). n

until_not(lambda x: x.find_element_by_id("someId").is_displayed())

"""

self._driver = driver

self._timeout = timeout

self._poll = poll_frequency

# avoid the divide by zero

if self._poll == 0:

self._poll = POLL_FREQUENCY

exceptions = list(IGNORED_EXCEPTIONS)

if ignored_exceptions is not None:

try:

exceptions.extend(iter(ignored_exceptions))

except TypeError: # ignored_exceptions is not iterable

exceptions.append(ignored_exceptions)

self._ignored_exceptions = tuple(exceptions)

从源码中分许出来三个参数的作用

driver:返回一个webdriver实例化

timeout:设置一个超时时长

poll_frequentcy:循环读取元素时间

使用方法:

# 导入方法 from selenium.webdriver.support.ui import WebDriverWait element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id("someId"))

element ui select设置不显示不存在的项_appium—等待时间设置方法相关推荐

  1. element UI select下拉选项位置问题

    element UI select下拉选项位置问题 在使用elementUI下拉选项时,可能存在下拉时下拉列表选项框的位置距离下拉框所在的位置距离过大,这个是由于elementUI自己设置的根据下拉框 ...

  2. 使用element ui select下拉框多选,编辑状态下回显数据

    最近在做一个项目,项目的后端是地址:https://github.com/wangyuanjun008/wyj-springboot-security.git 前端地址是 https://github ...

  3. element ui 表格动态列显示空白bug 修复

    在使用element ui框架进行项目开发的时候,表格的列是根据后台数据动态生成的,但是发现在列刷新的视乎,会出现表格完全空白,没有显示的情况,经过自己编写demo发现,在增加列的情况下表格正常,但是 ...

  4. 设置浏览器显示小于12px以下字体的三种方法

    使用场景: 以往设计图给的字号一般最小就是12px, 开发人员一般是使用谷歌浏览器来进行调试运行. 谷歌浏览器上显示字体最小为12px,css设置font-size:10px,运行代码显示结果仍然是1 ...

  5. element ui select 自动向上向下弹出_达观数据:Selenium使用技巧与机器人流程自动化实战...

    背景 北京时间晚上十一点,突然电脑右下角的QQ弹出了一条消息,"在?" 都9012年了还会有人单独发个"在"然后人就失踪了?有事情找就直接说事情嘛,你不说事情, ...

  6. element ui select 自动向上向下弹出_[selenium]用Selenium自动填问卷星的问卷

    不知道你家单位是怎么让各位职工上报自己体温的,总之我现在好像一天要报3次这样的感觉,比如这个东西,一天要填1次.每次填报的内容都是一样样的(除了体温以外),但是不能不填,填错了还不好办,怎么办呢?能不 ...

  7. 解决element ui select下拉框不回显数据问题

    最近在做一个项目,项目的后端是地址: https://github.com/wangyuanjun008/wyj-springboot-security.git 前端地址是 https://githu ...

  8. element ui textarea文本域显示滚动条

    测试报的一个小bug,在这做个记录 效果图: 加之前:鼠标放上去才会显示 加之后:超过直接显示出来 代码: <el-inputtype="textarea"v-model=& ...

  9. Element UI select 下拉框样式覆盖

    因为我需要写一个大屏页面,然后需要用到select框,我想把select下拉选项的背景颜色改成透明,然后我想覆盖掉它本身的样式.我本来想改变el-select-dropdown的样式,即使使用了 /d ...

最新文章

  1. 微生物组-扩增子16S分析研讨会(2020.1)
  2. hadoop job 数量_大数据Hadoop常见面/笔试题
  3. python分别统计男女人数_python实现爬虫统计学校BBS男女比例(一)
  4. Windows RDP协议 Fuzzing 漏洞挖掘研究
  5. 计算机秋招必备!广州互联网大厂企业整理清单!
  6. sublime,gedit,vim和mousepad等都出现fribidi_get_par_embedding_levels_ex
  7. EE JSP:使用JSTL标记库生成动态内容
  8. 4k笔记本安装linux,Dell 4K Linux 笔记本 M3800 发售
  9. @SuppressLint(HandlerLeak),或Handler使用有警告;
  10. 2021-2027全球与中国自动识别和数据采集设备市场现状及未来发展趋势
  11. 微信SDK删除支付模块流程
  12. 快牙网传——轻松发文字
  13. 如何用Procmon.exe来监视SQLSERVER的logwrite大小
  14. 基于人眼纵横比计算的人眼闭合检测算法
  15. calibre ebook viewer 自定义样式
  16. 区块链:从底层技术时代走向产品时代的跃进
  17. 更改无线网卡mac地址后,无法连接到此无线网卡分享的热点
  18. 短视频测试——腾讯大牛分享短视频测试经验
  19. A.pro读算法の2:高精度算法
  20. 网络协议封封封之Panabit配置文档

热门文章

  1. Java 格式转换:利用格式转换实现随机数生成随机 char 字母及 string 字母串
  2. 如何制作一条网线?(双绞线在水晶头中的排列顺序)
  3. 八、Python第八课——元组与列表、代码格式
  4. poj2186Popular Cows(Kosaraju算法--有向图的强连通分量的分解)
  5. python连接redis哨兵_Python redis.sentinel方法代码示例
  6. php整站防注入程序,php通用防注入程序 推荐
  7. Systemd入门教程:命令篇
  8. 2021广东高考成绩排名如何查询,2021年广东高考个人排名怎么查询,广东高考成绩排名查询方法...
  9. python怎么加图片_python中如何保存图片
  10. Redhat与ubuntu配置网卡