1.强制等待
time.sleep(3)
这种方式会是操作强行等待3s才会进行下一步操作,但是这种放法,可能会延长测试的时间,如果元素在1s中出现,就会浪费2s的时间,并且这种放法单次有效,每次需要等待元素的操作都需要加个方法,不推荐这种放法
time.sleep(1) wd.find_element_by_xpath('//*[@id="app"]/div[1]/div[2]/div[3]/div[1]/i').click()
2.隐式等待
dirver.implicitly_wait(30)
设置一个最长等待时间,如果页面所有内容在规定时间内加载出来就执行下一步 ,这个方法也有个弊端就是,你想要的元素其实已经加载出来,但是有其他的js,css等加载时间比较久就会影响测试进度
wd.implicitly_wait(30)
3.显示等待
设置一个最大等待时间,没隔一段时间去检查元素是否出现,出现的话就执行操作,如果超过最大时间就抛出异常。这个方法最推荐!
导包:
 
from selenium.webdriver.support.ui import WebDriverWait 

from selenium.webdriver.support import expected_conditions as ECS

from selenium.webdriver.common.by import By
使用:
 loc=(By.XPATH,'//*[@id="app"]/div[1]/div[2]/div[2]/div[1]/i')
WebDriverWait(wd,3).until(ECS.presence_of_element_located(loc))#显性等待,直到要找到的元素被找到才执行下一步
wd.find_element_by_xpath('//*[@id="app"]/div[1]/div[2]/div[2]/div[1]/i').click()
其中等待判断还有一些方法:
  • presence_ _of_ element_ located:元素 存在
  • vibility _of_ element_ located: 元素可见
  • element _to_ be_ clickable: 元素可点击

selenium等待的三种方式(详细)的更多相关文章

  1. selenium 延迟等待的三种方式

    1.最直接普通的方式:这个是设置固定的等待时间    Thread.sleep(1000);   2.显示等待方式(Explicit Wait):就是明确的要等待的元素在规定的时间之内都没找到,那么就 ...

  2. selenium中的三种等待方式(显示等待WebDriverWait()、隐式等待implicitly()、强制等待sleep())---基于python

    我们在实际使用selenium或者appium时,等待下个等待定位的元素出现,特别是web端加载的过程,都需要用到等待,而等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,在selenium中 ...

  3. Python selenium —— 一定要会用selenium的等待,三种等待方式解读

    发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性. 很多人在群里问,这个下拉框定位不到.那个弹出框定位不到…各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加 ...

  4. 【转载】一定要会用selenium的等待,三种等待方式必会

    转载地址:http://blog.csdn.net/huilan_same/article/details/52544521,感谢博文,学习了 原文: 发现太多人不会用等待了,博主今天实在是忍不住要给 ...

  5. 关于selenium中的三种等待方式与EC模块的知识

    1. 强制等待 第一种也是最简单粗暴的一种办法就是强制等待sleep(xx),强制让闪电侠等xx时间,不管凹凸曼能不能跟上速度,还是已经提前到了,都必须等xx时间. 看代码: 1 2 3 4 5 6 ...

  6. selenium使用等待的几种方式

    1.使用java的sleep try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated c ...

  7. 详细理解servlet实现的三种方式和生命周期

    阅读目录 开发servlet的三种方式 理解实现servlet接口的方式,理解servlet生命周期 Servlet接口有五个方法 继承GenericServlet 继承HttpServlet 现在很 ...

  8. WPF中实现PropertyGrid(用于展示对象的详细信息)的三种方式

    原文:WPF中实现PropertyGrid(用于展示对象的详细信息)的三种方式 由于WPF中没有提供PropertyGrid控件,有些业务需要此类的控件.这篇文章介绍在WPF中实现PropertyGr ...

  9. (java)selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待

    selenium webdriver学习---三种等待时间方法:显式等待,隐式等待,强制等待 本例包括窗口最大化,刷新,切换到指定窗口,后退,前进,获取当前窗口url等操作: import java. ...

  10. Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式

    Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cut ...

随机推荐

  1. ThreeJs-01开发环境搭建

    写在前面,好久不见各位,之前一段时间因为一些事情有点忙,但从未停止学习的脚步,也屯了很多笔记,会在未来的时间慢慢发出来,从今天开始一起进入WebGis,threeJs目前大前端发展的一个方向开始学习, ...

  2. 2020-2024 Rider安装+激活

    一.下载 1. rider各版本官方下载入口 rider官网下载地址 2. 选择左边,然后点击[20xx.x.x-Windows(exe)] PS: 如需下载特定版本,可以往下拉,都是选择[202x. ...

  3. PHP之PHPExcel

    PHPExcel是一款非常强大的PHP操作EXCEL库,使用PHPExcel可以帮助我们简单.高效实现从Excel读取Excel的数据和导出数据到Excel. 操作: include 'PHPExce ...

  4. 2016GPLT

    排座位 从1到N编号:M为已知两两宾客之间的关系数:K为查询的条数.随后M行,每行给出一对宾客之间的关系,格式为:宾客1 宾客2 关系,其中关系为1表示是朋友,-1表示是死对头.注意两个人不可能既是朋 ...

  5. 鸿蒙NEXT元服务:论如何免费快速上架作品

    [引言]天下武功,唯快不破. 本文讨论如何免费且以最快速度上架自己的作品. 作者以自己从零开始到提交发布审核一共俩小时的操作流程分享给大家作参考. [1]立项选择 结论:元服务,单机,工具类(非游戏) ...

  6. PythonDay2Base

    PythonDay2Base 前文见上一篇文章 数据类型详解 字符串 str 补充 startswith 判断字符串是否以某个小字符串开头 s1 = "shujia数加科技学习study&q ...

  7. Redis为什么这么快之IO多路复用

    情景复现 面试官:Redis为什么这么快? 我:1. 基于内存 2. 高效数据结构 3. 单线程 4. IO多路复用 面试官:那你讲讲Redis的IO多路复用模型是什么. 我:哦,嗯,啊,呀...IO ...

  8. CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序

    Selenium Selenium 是一款开源且可移植的自动化软件测试工具,专门用于测试网页端应用程序或者采集网页端数据.它能够在不同的浏览器和操作系统上运行,具有很强的跨平台能力.Selenium可 ...

  9. 前端每日一知之css隐藏页面元素

    脑图在线链接 本文内容依据[js每日一题]公众号精彩文章总结而来

  10. 鸿蒙UI开发快速入门 —— part12: 渲染控制

    1.前言 在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句,基于数组数据快速生成组件的循环渲染语句. 2.条件渲染 ...