Selenium的 WebDriverWait 研究
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,在运行automation时候,经常会遇到的问题是,页面的元素加载需要时间,而这个时间是不确定的,但是你的执行是一直在一步步往下走,如果实际页面等待时间过长导致某个dom元素还没出来,但是你的代码直接
千家信息网最后更新 2025年12月03日Selenium的 WebDriverWait 研究
在运行automation时候,经常会遇到的问题是,页面的元素加载需要时间,而这个时间是不确定的,但是你的执行是一直在一步步往下走,如果实际页面等待时间过长导致某个dom元素还没出来,但是你的代码直接使用了这个WebElement,那么就会抛出NullPointer的异常。
为了解决这种问题,尤其是RemoteWebDriver(不确定因素更多的情况) ,我们就需要用很高级的WebDriverWait的功能。
简而言之,这个WebDriverWait就是等待到某个条件的满足之下然后再继续往下走。
贴上样例代码:
WebDriverWait wait = new WebDriverWait(getWebDriver(), 3); wait.until(new ExpectedCondition() { public Boolean apply(WebDriver webDriver) { return !justification.getAttribute("class").contains("x-form-invalid-field"); } });
这段代码是干什么呢,它是说,默认让webDriver最多等3秒,直到页面上叫justification的WebElement元素的样式不包含x-form-invalid-field.
分析:
这是什么意思呢?很简单,因为我们的页面上每个字段都加了js表单验证,如果这个页面上的元素输入错误,就会有一个红色的框框提示用户非法输入,这个红色框框的样式就是x-form-invalid-field,所以我们的作用就是等这个红色的框框消失,然后再进行下一步的操作。
如下图:
因为这个justification的WebElement是强制用户输入的,如果用户不输入,就有个红色框框:
然后这个红色的框框的样式包含x-form-invalid-field,如下图:
所以现在十分清楚了,我们的目的就是在运行automation testcase时候让这个红色框框消失。
框框
红色
页面
元素
就是
输入
代码
时间
样式
用户
时候
问题
运行
清楚
高级
作用
功能
因素
字段
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大疆相机软件开发
青浦区环保网络技术销售公司
安全组与云服务器关系
网络安全从你我做起
保定行为管理服务器
交友互动软件开发
软件开发过程中的争执
大学软件开发课程都有哪些
收百度网络技术有限公司
软件开发在长沙好找工作吗
云南自由互联网科技公司
Java对数据库增量查询
数据库连接突然慢甚至连不上
博彩软件开发找谁
服务器数据库华为有吗
长沙网络安全城市
网络安全人才有比赛吗
数据库索引更新
如何将核心代码放到服务器
数据库专用血样袋做什么的
银川科技学院互联网金融
郎溪新能源软件开发服务生产过程
为什么实施工程师需要数据库
软件定义网络技术应用论文
服务器断网拼音
对峙2国人在哪个服务器玩
删除数据库sql
网易足球数据库
厦门电商软件开发
海南海口银行学校网络安全