Selenium Webdriver——设置等待时间

1.隐式等待

implicitlyWait():

当使用了隐士等待执行测试的时候,如果 WebDriver没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常

当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是0

一旦设置了隐式等待,则它存在整个 WebDriver 对象实例的声明周期中,隐式的等到会让一个正常响应的应用的测试变慢,

它将会在寻找每个元素的时候都进行等待,这样会增加整个测试执行的时间。

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);


2.显示等待

WebDriverWait():webdriver的针对某个元素的明确等待(explicitly wait)

详细格式如下:

WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)

driver - WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)

timeout - 最长超时时间,默认以秒为单位

poll_frequency - 休眠时间的间隔(步长)时间,默认为0.5 秒

ignored_exceptions - 超时后的异常信息,默认情况下抛NoSuchElementException 异常。

 1     /**
 2      * 在给定的时间内去查找元素,如果没找到则超时,抛出异常
 3      * */
 4     public static void waitForElementToLoad(WebDriver driver, int timeOut, final By By) {
 5         try {
 6             (new WebDriverWait(driver, timeOut)).until(new ExpectedCondition<Boolean>() {
 7
 8                 public Boolean apply(WebDriver driver) {
 9                     WebElement element = driver.findElement(By);
10                     return element.isDisplayed();
11                 }
12             });
13         } catch (TimeoutException e) {
14             Assert.fail("超时!! " + timeOut + " 秒之后还没找到元素 [" + By + "]");
15         }
16     }
时间: 2024-11-09 00:22:45

Selenium Webdriver——设置等待时间的相关文章

Python+Selenium学习--设置等待时间

场景 sleep():设置固定休眠时间.python 的time 包提供了休眠方法sleep() ,导入time 包后就可以使用sleep()进行脚本的执行过程进行休眠.implicitly_wait():是webdirver 提供的一个超时等待.隐的等待一个元素被发现,或一个命令完成.如果超出了设置时间的则抛出异常.WebDriverWait():同样也是webdirver 提供的方法.在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常. 代码 #!

selenium webdriver设置超时

webdriver类中有三个和时间相关的方法: 1.pageLoadTimeout 2.setScriptTimeout 3.implicitlyWait pageLoadTimeout from selenium import webdriver driver = webdriver.firefox() driver.set_page_load_timeout(10) setScriptTimeout 设置异步脚本的超时时间,用法同pageLoadTimeout一样就不再写了,异步脚本也就是有

selenium webdriver显示等待时间

当页面加载很慢时,推荐使用显示等待:等到需要操作的那个元素加载成功之后就直接操作这个元素,不需要等待其他元素的加载 WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("kw"))); 显式等待 使用ExpectedConditions类中自带方法, 可以进行显试等待的判断. 显式等待可以自定义等待的条件,用于

selenium python (五)打印信息及设置等待时间

#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #一般情况下我们要验证打开的页面是否正确,可通过网页的Title和Current_URL来验证 from selenium import  webdriverdriver = webdriver.Firefox()driver.get('http://www.baidu.com') #获取当前的网页标题driver.title #获取当前的页面URLdriver.cur

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

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

selenium 设置等待时间

有些网站打开地址或者进行操作后,页面需要加载几秒钟,或者等待某一元素加载完成后再继续下一步操作,这里就需要进行设置等待时间 导入time模块,time模块是python自带的,无需下载 一.设置等待时间有三种方法: 1.强制等待 time.sleep(time)     # 强制等待3秒后,进行下一步操作,也可以是小数,单位为秒 缺点:不能准确把握需要等待的时间(有时候操作未完成,等待就结束了,导致报错:有时候操作已经完成了,但时间还没到,浪费时间),如果再用例中大量使用,会浪费不必要的等待时间

Selenium WebDriver + Python 环境配置

1.   下载必要工具及安装包 1.1.[Python开发环境] 下载并安装Python 2.7.x版本(当前支持2.x版本,不要下载最新的3.X的版本因为python3并非完全兼容python2) 下载地址:https://www.python.org/downloads/ 1.2.[python 的安装包管理工具]Pip pip 是python 软件包的安装和管理工具,有了这个工具,我们只需要一个命令就可以轻松的python 的任意类库. 下载地址: https://pypi.python.

[selenium webdriver Java]显示的等待同步

显示等待可以在执行下一次操作时,自定义等待条件 显示的等待只需要执行在需要同步的地方而不影响脚本的其他地方 Selenium WebDriver提供了WebDriverWait和ExpectedCondition类来执行显示等待 ExpectedCondition类提供了一系列预定义好的条件来等待.下面是一些常用的条件 预定义条件 方法名 元素可见可点击 elementToBeClickable(By locator) 元素可被选中 elementToBeSelected(WebElement

[selenium webdriver Java]隐式的等待同步

Selenium WebDriver提供了隐式等待来同步测试.当使用了隐式等待执行测试的时候,如果WebDriver没有在DOM中找到元素,将继续等待,超出设定时间后,抛出找不到元素异常 即,当元素没有立即出现的时候,隐式等待将等待一段时间后,再查找DOM.默认时间是0. 一旦设置了隐式等待,它将存在在整个webdriver对象实例的生命周期中,隐式等待会让一个正常响应的应用的测试变慢,会在寻找每个元素时进行等待,这样增加了整个测试执行的时间. 应该避免或减少使用隐式等待 //等待60s dri