文档章节

selenium.显示等待(WebDriverWait)

o
 osc_wws45aot
发布于 2019/08/21 19:16
字数 356
阅读 21
收藏 0

精选30+云产品,助力企业轻松上云!>>>

显示等待语法

WebDriverWait(driver,timeout,poll_frequency,ignored_exceptions)

driver: 传入WebDriver实例,即webdriver.Chrome()
timeout: 超时时间,等待的最长时间(同时要考虑隐性等待时间)
poll_frequency: 调用until或until_not中的方法的间隔时间,默认是0.5秒
ignored_exceptions: 忽略的异常,如果在调用until或until_not的过程中抛出这个元组中的异常, 则不中断代码,继续等待,如果抛出的是这个元组外的异常,则中断代码,抛出异常。默认只有NoSuchElementException

WebDriverWait 的两种等待方式

until(method,message)
method: 在等待期间,每隔一段时间(__init__中的poll_frequency)调用这个传入的方法,直到返回值不是False
message: 如果超时,抛出TimeoutException,将message传入异常
until_not(method,message)
与until相反,until是当某元素出现或什么条件成立则继续执行,
until_not是当某元素消失或什么条件不成立则继续执行,参数也相同,不再赘述。

调用方法:WebDriverWait(driver, 超时时长, 调用频率, 忽略异常).until(可执行方法, 超时时返回的信息)

下面是根据until和until_not在百度输入框进行操作的demo

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait

browser = webdriver.Chrome()
browser.get("https://www.baidu.com")

# 一行代码完成
WebDriverWait(browser,10).until(lambda browser:browser.find_element_by_id("kw")).send_keys("pytest")

# 定义方法完成
def kw(driver,times,func):
	return WebDriverWait(driver,times).until(func)
kw(browser,10,lambda x:x.find_element_by_id("kw")).send_keys("selenium")
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
selenium之python源码解读-WebDriverWait

一、显示等待 所谓显示等待,是针对某一个特定的元素设置等待时间,如果在规定的时间内找到了该元素,就执行相关的操作,如果在规定的时间内没有找到该元素,在抛出异常 PS:注意显示等待和隐...

osc_9hgpcg9o
2018/04/30
2
0
appium三种等待元素的方法

学过selenium的都知道,一般等待元素加载有三种办法: (1)sleep 强制等待。示例:Thread.sleep(60000) (2)implicitlyWait 隐式等待。全局等待30s不管元素是否已经加载 示例:driver.ma...

孟飞阳
2016/07/13
763
0
Appium 三种wait方法(appium 学习之改造轮子)

前些日子,配置好了appium测试环境,至于环境怎么搭建,参考:http://www.cnblogs.com/tobecrazy/p/4562199.html                   知乎Android客户端登陆:http://www.cn...

to be crazy
2015/06/23
0
0
selenium2 webdriver 设置等待时间

受页面加载速度的影响,经常报“Unable to locate element”的错误。 为了保证脚本运行的稳定性,需要脚本中添加等待时间。 1.sleep()-----固定休眠 sleep():设置固定休眠时间。python的time包...

北_木
2016/08/11
114
0
Selenium学习之==>三种等待方式

  在UI自动化测试中,必然会遇到环境不稳定,网络慢的情况,这时如果你不做任何处理的话,代码会由于没有找到元素,而报错。这时我们就要用到wait(等待),而在Selenium中,我们可以用到一...

osc_4g93n6bo
2018/07/20
3
0

没有更多内容

加载失败,请刷新页面

加载更多

Asp.net core之NLog

NuGet添加 NLog.Web.AspNetCore。 <PackageReference Include="Microsoft.AspNetCore.App" /> 添加配置文件 新建一个文件nlog.config(建议全部小写,linux系统中要注意), 并右键点击其属性......

一介草民Coder
3分钟前
0
0
.NET中的struct和class有什么区别? - What's the difference between struct and class in .NET?

问题: .NET中的struct和class有什么区别? 解决方案: 参考一: https://stackoom.com/question/3OT/NET中的struct和class有什么区别 参考二: https://oldbug.net/q/3OT/What-s-the-differ...

富含淀粉
45分钟前
23
0
android:layout_weight是什么意思? - What does android:layout_weight mean?

问题: I don't understand how to use this attribute. 我不明白如何使用这个属性。 Can anyone tell me more about it? 谁能告诉我更多关于它的事情? 解决方案: 参考一: https://stacko...

javail
今天
17
0
CSS背景不透明度[重复] - CSS Background Opacity [duplicate]

问题: This question already has an answer here: 这个问题已经在这里有了答案: How do I give text or an image a transparent background using CSS? 如何使用CSS为文本或图像提供透明背...

fyin1314
今天
31
0
node http 获取gb2312网页如何转为utf8

最初,我想当然认为是下述做法,但被证明是错误的 const http = require('http'), iconv = require('iconv-lite');const url = 'http://xxx';http.get(url, function(res) { var bo......

高延
今天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部