java中wait的场景,wait——webdriver实用指南java版

场景

Wait类的使用场景是在页面上进行某些操作,然后页面上就会出现或隐藏一些元素,此时使用WebDriverWait类的until方法来等待这些效果完成以便进行后续的操作。另外页面加载时有可能会执行一些ajax,这时候也需要去WebDriverWait的until的等待ajax的请求执行完毕。

具体一点的例子前面也曾出现过,点击一个链接然后会出现一个下拉菜单,此时需要先等待下拉菜单出现方可进行点击菜单项的操作。

在实例化WebDriverWait类时,有下面2个构造方法

public WebDriverWait(WebDriver driver, long

timeOutInSeconds)

public WebDriverWait(WebDriver driver, long timeOutInSeconds,

long sleepInMillis)

其参数为

WebDriver driver。不言而喻

long timeOutInSeconds。总体的超时时间,最多等这么久。

long sleepInMillis。每隔多久去检查一次until的结果

另外要注意的是,默认情况下,unitl中的NotFoundException会被忽略,但是其他异常还是正常传播的。你可以通过ignoring(exceptions

to add)自己定义需要忽略的异常。

代码

下面代码演示了点击按钮后如何等待label出现。这个例子其实没有前面的下拉菜单例子实用。

wait.html

< html>

< head>

<

meta http-equiv="content-type" content="text/html;charset=utf-8"

/>

<

title>wait

<

script type="text/javascript" async=""

src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">

<

link

href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css"

rel="stylesheet" />

<

script type="text/javascript">

$(document).ready(function(){

$('#btn').click(function(){

$('

waitr-webdriver

').css('margin-top', '1em').insertAfter($(this));

$(this).addClass('disabled').unbind('click');

});

});

<

/script>

< /head>

< body>

<

div class="row-fluid">

< div class="span6 well">

< h3>wait

< button class="btn

btn-primary" id="btn" >Click

< /div>

<

/div>

< /body>

< script

src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js">

< /html>

wait.java

import

java.io.File;

import

java.util.List;

import

org.openqa.selenium.Alert;

import

org.openqa.selenium.By;

import

org.openqa.selenium.JavascriptExecutor;

import

org.openqa.selenium.Keys;

import

org.openqa.selenium.WebDriver;

import

org.openqa.selenium.WebElement;

import

org.openqa.selenium.chrome.ChromeDriver;

import

org.openqa.selenium.support.ui.ExpectedCondition;

import

org.openqa.selenium.support.ui.WebDriverWait;

public class WaitExample

{

public static void main(String[] args) throws

InterruptedException {

WebDriver

dr = new ChromeDriver();

File file

= new File("src/wait.html");

String

filePath = "file:///" + file.getAbsolutePath();

System.out.printf("now accesss %s \n", filePath);

dr.get(filePath);

Thread.sleep(1000);

//  点击按钮

dr.findElement(By.id("btn")).click();

(new

WebDriverWait(dr, 10)).until(new ExpectedCondition() {

public Boolean apply(WebDriver d) {

return

d.findElement(By.className("label")).isDisplayed();

}

});

Thread.sleep(1000);

System.out.println("browser will be close");

dr.quit();

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508275.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php使用未定义常数,php-使用未定义的常量SIGTERM-gt;假定为’SIGTERM’

当前在Windows机器上运行带有Codeception的PHPUnit会给我一个错误&#xff1a;[PHPUnit_Framework_Exception]Use of undefined constant SIGTERM –assumed ‘SIGTERM’据我所知,SIGTERM是PCNTL提供的常数,Windows不支持.这样,该常数就不能用于Windows env上运行的测试.完全没…

仿58 php框架源码,转转最新源码

压缩包 : bc03626411ac7cfc4065d9.rar 列表detail1/address.phpdetail1/index.phpdetail1/index1.phpdetail1/login.phpdetail1/order.phpdetail1/payment_number.phpdetail1/style/css/jquery.mloading.cssdetail1/style/css/style.cssdetail1/style/css/touchTouch.cssdetail…

mysql的发展进程和特点,试述数据库技术的发展过程。数据库技术发展的特点是什么?...

试述数据库技术的发展过程。数据库技术发展的特点是什么&#xff1f;更多相关问题如果冬季涂料施工时涂料不易干&#xff0c;应多加一些催干剂。THE ANCHOR WAS HEAVED AWEIGH means ______.A.The anchor was weightedB.The anchor was let goA schooner is a fore&#xff0d;…

java arraylist char,Java基础学习笔记六 Java基础语法之类和ArrayList详解

引用数据类型引用数据类型分类&#xff0c;提到引用数据类型(类)&#xff0c;其实我们对它并不陌生&#xff0c;如使用过的Scanner类、Random类。我们可以把类的类型为两种&#xff1a;第一种&#xff0c;Java为我们提供好的类&#xff0c;如Scanner类&#xff0c;Random类等&a…

基音检测 matlab,基于MATLAB基音检测分析.doc

基于MATLAB基音检测分析基于MATLAB基音检测分析摘要&#xff1a;基音检测作为语音信号处理的重要手段&#xff0c;被广泛地应用于语音的合成、编码及识别等一系列语音信号处理技术问题。基音检测的准确性对于要求极高的语音识别、合成、分析、压缩编码等等都有重要的意义。该文…

php多线程 static变量,private static和public static的比较:多线程间

private static和public static的比较&#xff0c;区别在于修改的范围不同&#xff0c;但作用域都是全局的即整个进程内共享&#xff0c;与具体线程无关。以下是测试代码&#xff1a;声明静态内部变量的抽象类package atest.privateStatic;public abstract class TypeObject {p…

matlab 数值解 期权顶级啊,潮盈期权院高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍...

主题&#xff1a;高胜率交易技巧系列之二----期权交易策略及基于MATLAB统计套利介绍会场流程&#xff1a;13:30--14:00&#xff1a;参会嘉宾到场签名14:00--14:45&#xff1a;期权知识14:45--15:25&#xff1a;期权交易策略使用15:25--15:35&#xff1a;茶歇15:35--16:35&#…

nginx怎么升级php的版本号,nginx 升级指南,最详细的nginx升级步骤

查看nginx当前版本通过nginx -V 命令就可以查看当前的版本&#xff0c;已经当前版本安装时候的一些nginx命令[rootlocalhost sbin]# ./nginx -Vnginx version: nginx/1.2.9built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC)configure arguments: --prefix/nginx_instal1.下…

oracle sum函数返回类型,Oracle / PLSQL SUM函数

这个Oracle教程解释了如何使用Oracle / PLSQL SUM函数。SUM(x) 添加x中的所有值&#xff0c;并返回总和。SUM函数对一组行进行操作&#xff0c;并返回一行输出。 Null值被SUM函数忽略。您可以使用DISTINCT关键字排除重复条目。语法Oracle / PLSQL SUM函数的语法是&#xff1a;S…

pdo oracle返回参数游标,PDOStatement::closeCursor

PDOStatement::closeCursorPDOStatement::closeCursor — 关闭游标&#xff0c;使语句能再次被执行。(PHP 5 > 5.1.0, PECL pdo > 0.9.0)说明语法bool PDOStatement::closeCursor ( void )PDOStatement::closeCursor() 释放到数据库服务的连接&#xff0c;以便发出其他 S…

php的用例图箭头怎么画,需求中如何画用例图 - china008的个人空间 - OSCHINA - 中文开源技术交流社区...

UML用例图用例图主要用来图示化系统的主事件流程&#xff0c;它主要用来描述客户的需求&#xff0c;即用户希望系统具备的完成一定功能的动作&#xff0c;通俗地理解用例就是软件的功能模块&#xff0c;所以是 设计系统分析阶段的起点&#xff0c;设计人员根据客户的需求来创建…

php stmp 授权码问题,PHPmailer 使用网易126发送邮件的问题

最近使用PHPMailer库连接网易的smtp.126.com邮件服务发送邮件总是返回连接失败Mailer Error: SMTP connect() failed.换过swiftmailer库也是一样的结果。这是使用新的网易帐号才会有的问题&#xff0c;因为新的网易帐号需要开启客户端授权码才能使用SMTP服务。旧帐号是没有这个…

oracle学习数据,Oracle从入门到精通的学习笔记

本次知识点:1.认识SQL的介绍2.掌握scott用户的数据结构3.查询语句之简单查询1.SQL:SQL是指结构化查询语言,在80年代的时候,基本存在80多种数据库,每一种数据库都有自己的的操作命令,也就导致了程序员从一个数据库到另一个数据库的转化时变的极为麻烦,基本就要从新学习.在70年代…

linux创建新进程就分配空间,linux几种创建进程的方法

在Linux中主要提供了fork、vfork、clone三个进程创建方法。在linux源码中这三个调用的执行过程是执行fork(),vfork(),clone()时&#xff0c;通过一个系统调用表映射到sys_fork(),sys_vfork(),sys_clone(),再在这三个函数中去调用do_fork()去做具体的创建进程工作。forkfork创建…

java文件下载至linux乱码,JAVA 文件下载乱码问题解决办法

页面设置隐藏的iframe页面下载按钮id"btnDown" href"javascript:void(download(btnDown))" >下载模板页面JS脚本function download(id){$("#reqFrame").attr("src",encodeURI("/servlet/Common?actiondownloadByPath&fil…

强行更改linux服务器时间,加强Linux服务器安全的20项建议

一般情况下用 Linux 做桌面在默认配置下是很安全的&#xff0c;我在一定程度上同意这个说法(很值得商榷的话题)。不过 Linux 内置的安全模型和工具做得确实很到位&#xff0c;用户只需进行简单的调整和自定义就可以加强 Linux 服务器安全。与恶意用户做斗争对于所有 Linux 系统…

webshell提权教程linux,Linux下WEBSHELL提权

用phpshell2.0和Linux Kernel2.6x 本地溢出代码配合提ROOT,现在不少LINUX主机都还有这个本地溢出漏洞。前提&#xff1a;1、目标机上安装了GCC能编译源码2、Kernel 2.6.x (> 2.6.13 && < 2.6.17.4)因为是在webshell里溢出成功也得不到返回的ROOT SHELL,所…

Linux宏定义实现类成员函数,全面解析Linux内核的同步与互斥机制

http://blog.csdn.net/sailor_8318/archive/2008/06/30/2599357.aspx【摘要】本文分析了内核的同步及互斥的几种机制&#xff1a;原子运算符(atomicoperator)、自旋锁Spinlock、等待队列Waitqueue、事件Event、completion、信号量Semaphore及其优化版互斥锁&#xff0c;详细分析…

Linux命令sngre,linux gre隧道创建

linux gre隧道创建实验环境两台可以相互通信的虚拟机&#xff0c;两个虚拟机在不通的网段。如下所示host A:[[email protected] ~]# ip a1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127…

linux终端提示符含义,Linux:终端提示符 (prompt) 不如期生效原因

前言先来简单介绍下, prompt是什么鬼? 顾名思义就是提示符的意思, 看起来和我们遥远, 但实际上只要是每个接触shell的童鞋, 都有看到, 那就是我们在输命令时前面的那串提示符.例如:当然, 这个样式是可以修改的, 这就涉及到我们的PS1和PS2了, 有经验或者以前有设置过的童鞋估计…