Selenuim 三种等待方式解读
很多情况下写代码时不加等待时间容易出现定位不到元素的情况,可见等待时间的重要性,下面介绍一下selenium的三种等待方式
1.强制等待----sleep()
不管浏览器是否加载完了,程序都得等待所设置的时间,设置的时间一到,则继续执行下面的代码。
from selenium import webdriver
from time import sleep
dr=webdriver.Chrome()
dr.get("https://www.so.com")
sleep(2) #强制等待2秒再进行下一步
dr.find_element(By.ID,"input").send_keys("selenium")
2.隐性等待----implicitly_wait()
隐性等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步。如果在设置的时间内元素依然没有被加载出来,那就会报错。隐性等待对整个driver的周期都起作用,所以只要设置一次即可,不必像sleep一样每一步设置一次。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
dr=webdriver.Chrome()
dr.implicitly_wait(20) #设置等待20s
dr.get("https://www.so.com")
3.显性等待----WebDriverWait
显性等待时间可以通过WebDriverWait 和util来决定,如果该元素在设置的等待时间以内出现就不再等待,然后执行下一步,如果在设置的时间内没有加载出则会报TimeoutException错误。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
dr=webdriver.Chrome()
dr.implicitly_wait(20) #设置等待20s
dr.get("https://www.so.com")
element = WebDriverWait(dr,30).until(lambda dr:dr.find_element(By.ID,"input")) #设置显性等待时间
element.send_keys("selenium自动化")
*上述例子用到了lambda函数,简单介绍一下lambda是一个匿名函数,不需要定义的函数,只做简单运算,并返回值,没有复杂的函数体。
转载于:https://www.cnblogs.com/xyx-001/p/9518215.html
Selenuim 三种等待方式解读相关推荐
- Python selenium —— 一定要会用selenium的等待,三种等待方式解读
发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性. 很多人在群里问,这个下拉框定位不到.那个弹出框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加 ...
- python的等待代码是什么_Python selenium 三种等待方式详解
1.目的背景 解决问题:下拉框定位不到.弹框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待. 原因:代码运行速度快,而浏览器加载渲染速度慢 解决办法:加等待,目 ...
- 【App自动化测试】(八)三种等待方式——强制等待、隐式等待、显示等待
目录 1. 为什么要添加等待? 2. 三种等待方式 3. 强制(直接)等待 4. 隐式等待 4.1 隐式等待说明 4.2 隐式等待无法解决的问题 5. 显式等待 5.1 为什么要使用显示等待机制? 5 ...
- selenium中的三种等待方式以及显示等待和隐式等待区别
selenium的三种等待方式 selenium中一般分为三种等待方式:显示等待.隐式等待.sleep强制等待 1.显示等待(有条件) 程序提前指定等待条件和等待时间,在查找元素时,判断规定时间内是否 ...
- Python selenium —— 一定要会用selenium的等待,三种等待方式解
转自 http://lib.csdn.net/article/48/50937?knId=1313 Python selenium -- 一定要会用selenium的等待,三种等待方式解 发现太多人 ...
- selenium中三大切换 三种等待方式
前言 ui自动化测试,就是通过代码模拟手工操作,通过点击.拖拽.输入等方式,进行浏览器页面的操作,我们常用的web自动化测试工具,是selenium:同时在我们日常操作中,由于需要创建链接,加载页面, ...
- selenium中三种等待方式:sleep,implicitly_wait,WebDriverWait
三种等待方式:sleep 强制等待, sleep,设置等待多长时间,就要等待多长时间.等待完成后,才会继续下一步: from selenium import webdriver # 导入sleep f ...
- python三种等待方式_Python selenium 三种等待方式详解
本文摘自:http://blog.csdn.net/huilan_same/article/details/52544521 发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性. 很 ...
- 三种等待方式:强制等待、显式等待、隐式等待
我们在使用selenium的时候,会遇到一种定位不到的情况,因为web页面有一个加载的过程 当页面元素未出现时,去定位肯定是定位不到的,所以我们需要用到了'等待',该如何使用等待呢,让我们一起来探讨一 ...
最新文章
- vb破解万能断点816c24
- JAX-RS 方式的 RESTful Web Service 开发
- 笔记本8G+256G固态免费送,吃鸡不吃力,包邮!
- Vue -- 指令【学习笔记】(持续更新)
- IDEA Maven 聚合项目(多模块)搭建--最精简
- 对棋盘完美覆盖问题证明过程的质疑及其解决
- Task/Parallel实现异步多线程
- CF - 1214D
- js分页工具分页功能实现
- C++工业设备日志记录系统
- NRF24L01故障排查
- 敏捷项目管理术语大全
- uniapp开发APP/小程序 微信一键登陆
- JZOJ4722. 跳楼机
- 这些跳槽理由千万不能说!
- tp5 分页之无刷新页面渲染
- 攻防世界web新手区合集
- 明德扬FPGA开发板XILINX-K7核心板Kintex7 XC7K325 410T工业级
- 推荐系统入门(二):协同过滤(附代码)
- 优质免费在线学习网站
热门文章
- java操作mysql数据库实例_jdbc操作mysql数据库实例
- java线程入门_java多线程快速入门(一)
- 利用kaggle训练模型
- python中的字符串文本必须用什么括起来_Python标准库---18、文本处理服务:string 常见的字符串操作...
- 华为nova7保密柜_华为nova8系列发布 Vlog视频旗舰3299元起
- 【最新】2021年自然语言处理 (NLP) 算法学习路线!
- 基于Bert-NER构建特定领域中文信息抽取框架
- 归并有效排序算法matlab,科学网—[用MATLAB写算法]之排序算法2)归并排序merge sort - 徐勇刚的博文...
- loss函数之MarginRankingLoss
- C#动态调用WCF接口,两种方式任你选。